【前端】:JavaScript

简介:

JavaScript是一门编程语言(之前一直误以为是有关java的知识),浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理。JS目前广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。

 

一、JavaScript代码存在形式与存放位置

1. JavaScript代码有两种存在形式,一种是直接在html内部编写javascript,另一种是导入JS文件。

方式一:在html内部编写javascript

1 <script>2     function f1(){3     alert('f1')4     }5     f1();6 </script>

方式二:通过文件导入

1 <script src="common.js"></script>2 <script>f2();</script>

第一行<script src="common.js"></script>,表示导入common.js文件,common.js文件的内容:

1 function f2(){2     alert('f2')3     }

2、JavaScript代码存在位置

  • HTML的head中

  • HTML的body代码块底部(推荐)

由于Html代码是从上到下执行,如果放在head头部中的js代码耗时严重,就会导致用户长时间无法看到页面;如果放置在body代码块底部,那么即使js代码耗时严重,也不会影响用户看到页面效果,只是js实现特效慢而已。
一般把js代码放在body代码块的最后面

 

二、声明变量/注释/分号

JavaScript中变量的声明是一个非常容易出错的点,局部变量必须一个 var 开头,如果未使用var,则默认表示声明的是全局变量。建议使用的时候一般不要使用全局变量!否则如果代码量比较大的时候容易出现调用混乱的问题。

1 var name = "seven"  # 局部变量2 age = 18            # 全局变量

注释:

单行注释:   //          
多行注释:  /* 要注释的内容 */  

分号:

写js代码时,注意每一行都加分号(如下面的左图)。
因为产品上线时会用专门的工具将多行的代码压缩成单行的代码(如下面的右图)。如果不加分号上线时就乱套了!!

          

jquery.js    没压缩成单选的
jquery.min.js  有压缩成单行

实例: 刚好我下载jquery时发现是jquery-3.1.1.min.js就顺手截了图。

 

三、数字与字符串

1. 数字(Number)

1 var age = 18; 
2 或 var age = Number(18);

将字符串转化为数字 

Number("123");  或  parseInt("123");    推荐

前面已经说过浏览器内置了JavaScript语言的解释器,下面就来写个超简单的:

1
2
3
4
5
6
7
8
9
10
11
12
<script>
        var age = "18";
        var age_1 = parseInt(age);
        console.log(age);
        console.log(age, typeof age);   //输出:18 string 注意:typeof age 别写错
 
        var age_2 ="16.6";
        console.log(parseInt(age_2));     //输出:16
        console.log(parseFloat(age_2));  //输出:16.6
 
        var a1 = 1,a2 = 2, a3 = 3;  //单行定义多个变量
</script>

运行界面截图:

 

2. 字符串(String)

  • charAt()    根据索引取字符串的某个字符

  • trim()      去除空格

  • substring(a, b)        切片(切取大于等于a,小于b的内容)

  • indexOf() 获取字符的索引

  • length       字符串的长度

实例请看下图(清晰明了~~):

 

四、布尔/数组/字典

1. 布尔

Boolean(1)  返回true
Boolean(0)    返回false

2. 数组

定义数组的下面两种方式:

1 var names = ['alex', 'tony', 'eric']2 var names = Array('alex', 'tony', 'eric')

添加元素:

1 obj.push(ele)                   //追加2 obj.unshift(ele)                //最前插入3 obj.splice(index,0,'content')   //指定索引插入  (0是固定写的)

实例请看下图:

移除:

1 obj.pop()                       //数组尾部移除2 obj.shift()                      //数组头部移除3 obj.splice(index,count)  //数组指定位置后count个字符

切片:

1 obj.slice(start,end)   //大于等于start,小于end

实例请看下图:

合并

  • newArray = obj1.concat(obj2)  

翻转

  • obj.reverse()

字符串化

  • obj.join('_')

长度

  • obj.length

字典

1 var items = {'k1': 123, 'k2': 'tony'}

实例请看下图:

更多操作请参考:http://www.shouce.ren/api/javascript/main.html 

 

五、序列化与反序列化

序列化:  JSON.stringify()
反序列化: JSON.parse()

 

undefined: 表示未定义值

null: 一个特殊值

 

六、循环

数组有两种循环方式,字典只有一种。

复制代码

 1 var names = ["alex", "tony", "rain"]; 2   3 // 数组:方式一 4 for(var i=0;i<names.length;i++){ 5     console.log(i); 6     console.log(names[i]); 7 } 8   9  10 // 数组:方式二11 for(var index in names){12     console.log(index);13     console.log(names[index]);14 }15  16 var names = {"name": "alex", "age":18};17  18  19 // 字典:方式一20 for(var index in names){21     console.log(index);22     console.log(names[index]);23 }

复制代码

实例请看下图:

在浏览器console界面,按住shift + enter可回车后继续写代码,而不是执行命令。

注意: for(var item in li){}  item是索引,这与python的循环不一样,千万别搞混了。

 

七、条件语句与异常处理

1. 条件语句

复制代码

 1 //if条件语句 2   3     if(条件){ 4   5     }else if(条件){ 6           7     }else{ 8   9     }10  11 var name = 'alex';12 var age = 1;13  14 // switch,case语句15     switch(name){16         case '1':17             age = 123;18             break;19         case '2':20             age = 456;21             break;22         default :23             age = 777;24     }

复制代码

2. 异常处理

复制代码

1 try{2  3 }catch(e) {4  5 }finally{6  7 }

复制代码

条件语句与异常处理与C语言和python类似,没什么好讲的,过~~

 

八、函数

  1. 普通函数

  2. 匿名函数

  3. 自执行函数

复制代码

 1     <script> 2         //普通函数 3         function func1(arg) { 4             console.log(arg); 5             return "zcl"; 6         } 7         var ret = func1(123); 8         console.log(ret); 9 10         //匿名函数 f为函数名11         var f = function (arg) {12             console.log(arg);13         };14         f(12345);15 16         //自执行函数:定义函数并自动执行17         (function (arg) {    //自执行函数先写()(); 再在第一个括号写function18             console.log(1234, arg);19         })("zcl");20     </script>

复制代码

运行结果:

 

九、面向对象

复制代码

 1 <script> 2     function Foo (name,age) { 3         this.Name = name; 4         this.Age = age; 5         this.Func = function(arg){ 6             return this.Name + arg; 7         } 8     } 9     var obj = new Foo('zcl', 22);10     console.log(obj.Name);11     console.log(obj.Age);12     var re = obj.Func(' good man');13     console.log(re)14 </script>

复制代码



















本文转自xsster51CTO博客,原文链接:http://blog.51cto.com/12945177/1929493 ,如需转载请自行联系原作者





相关文章
|
20天前
|
JavaScript 前端开发 程序员
前端原生Js批量修改页面元素属性的2个方法
原生 Js 的 getElementsByClassName 和 querySelectorAll 都能获取批量的页面元素,但是它们之间有些细微的差别,稍不注意,就很容易弄错!
|
17天前
|
JavaScript 前端开发 Java
springboot解决js前端跨域问题,javascript跨域问题解决
本文介绍了如何在Spring Boot项目中编写Filter过滤器以处理跨域问题,并通过一个示例展示了使用JavaScript进行跨域请求的方法。首先,在Spring Boot应用中添加一个实现了`Filter`接口的类,设置响应头允许所有来源的跨域请求。接着,通过一个简单的HTML页面和jQuery发送AJAX请求到指定URL,验证跨域请求是否成功。文中还提供了请求成功的响应数据样例及请求效果截图。
springboot解决js前端跨域问题,javascript跨域问题解决
|
19天前
|
缓存 JavaScript 前端开发
JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用
本文深入讲解了 JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用。
29 5
|
17天前
|
缓存 前端开发 JavaScript
JavaScript前端路由的实现原理及其在单页应用中的重要性,涵盖前端路由概念、基本原理、常见实现方式
本文深入解析了JavaScript前端路由的实现原理及其在单页应用中的重要性,涵盖前端路由概念、基本原理、常见实现方式(Hash路由和History路由)、优点及挑战,并通过实际案例分析,帮助开发者更好地理解和应用这一关键技术,提升用户体验。
47 1
|
21天前
|
JSON 前端开发 JavaScript
聊聊 Go 语言中的 JSON 序列化与 js 前端交互类型失真问题
在Web开发中,后端与前端的数据交换常使用JSON格式,但JavaScript的数字类型仅能安全处理-2^53到2^53间的整数,超出此范围会导致精度丢失。本文通过Go语言的`encoding/json`包,介绍如何通过将大整数以字符串形式序列化和反序列化,有效解决这一问题,确保前后端数据交换的准确性。
31 4
|
25天前
|
资源调度 前端开发 JavaScript
vite3+vue3 实现前端部署加密混淆 javascript-obfuscator
【11月更文挑战第10天】本文介绍了在 Vite 3 + Vue 3 项目中使用 `javascript-obfuscator` 实现前端代码加密混淆的详细步骤,包括安装依赖、创建混淆脚本、修改 `package.json` 脚本命令、构建项目并执行混淆,以及在 HTML 文件中引用混淆后的文件。通过这些步骤,可以有效提高代码的安全性。
|
1月前
|
设计模式 前端开发 JavaScript
揭秘!前端大牛们如何巧妙利用JavaScript,打造智能交互体验!
【10月更文挑战第30天】前端开发领域充满了无限可能与创意,JavaScript作为核心语言,凭借强大的功能和灵活性,成为打造智能交互体验的重要工具。本文介绍前端大牛如何利用JavaScript实现平滑滚动、复杂动画、实时数据更新和智能表单验证等效果,展示了JavaScript的多样性和强大能力。
46 4
|
1月前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
|
1月前
|
移动开发 前端开发 JavaScript
前端实训,刚入门,我用原生技术(H5、C3、JS、JQ)手写【网易游戏】页面特效
于辰在大学期间带领团队参考网易游戏官网的部分游戏页面,开发了一系列前端实训作品。项目包括首页、2021校园招聘页面和明日之后游戏页面,涉及多种特效实现,如动态图片切换和人物聚合效果。作品源码已上传至CSDN,视频效果可在CSDN预览。
31 0
前端实训,刚入门,我用原生技术(H5、C3、JS、JQ)手写【网易游戏】页面特效
|
1月前
|
JavaScript 前端开发 开发者
前端框架对比:Vue.js与Angular的优劣分析与选择建议
【10月更文挑战第27天】在前端开发领域,Vue.js和Angular是两个备受瞩目的框架。本文对比了两者的优劣,Vue.js以轻量级和易上手著称,适合快速开发小型到中型项目;Angular则由Google支持,功能全面,适合大型企业级应用。选择时需考虑项目需求、团队熟悉度和长期维护等因素。
41 1