JS学习总结
变量
js是弱类型语言,使用“var 变量名 = 变量值”的形式声明一个变量。这个变量可以是任意类型
例如:
var a = 0; //数字Number
var b = '123'; //字符串
var c = undefined //未定义
基本数据类型
与大多高级编程语言类似,js的变量也分为引用类型与基本类型,其中基本类型包括以下五种:
- Number 数字
- String 字符串
- undefined 未定义
- Boolean 真假
- Null 空
引用数据类型
引用类型主要包括:Object、Array、Date、RegExp、Function。
运算符
js中的运算符与大多高级编程语言中的运算符类似。
-
一元操作符 ++ –
-
布尔操作符 && || !
-
算术操作符 + - * / %
-
三元操作符 ? :
-
关系操作符 <> <=>= == === != !==
在以上运算符中,有以下几点要注意
1、使用布尔操作符时,除了null,undefined,‘’,0,false,nan为假,其余全为真。1&&0 //false
‘’&&1 //false
2、关系运算符的===,会先进行类型判断,当两个变量类型不同返回false,否则继续判断值是否相同。
1 === '1' //false
'1' === '1' //true
语句
分支语句
if - else与if - else if - if 用于条件判断分支流程,与大多高级编程语言中的运算符类似。
循环语句
do - while与while()用于循环流程,与大多高级编程语言中的运算符类似。
在js中,for-of、forEach能更简单地遍历集合中的元素
for (var a of arrays) //循环取array里的数据
arrays.foreach(c) //循环取array里的数据到c
函数
function sum(num1, num2) {
return num1 + num2;
}
js中的函数同样与大多高级编程语言中的函数类似,但是不同的是,js中函数并不需要指明其返回类型。在函数体外面
使用变量接收时,变量会自动转换为return中的变量类型。
除此之外,在调用函数时,js并不关心你传入的参数的个数。在高级语言中,传入的参数数量不同时,编译器会报错,但是
js中不会影响。
当同时定义了两个名字相同的函数,则该名字只属于后定义的函数,先前的函数会被“覆盖”。
对象
var person = {
firstName:"John",
lastName:"Doe",
age:50,
eyeColor:"blue",
say :function(){
console.log('HelloJS!')
}
};
js中的对象同样与大多高级编程语言中的对象类似,是键值对的集合。在定义时,在等号后面接上大括号,在里面写上
键值对,每个键值对之间用逗号隔开。
与大多高级编程语言中的对象类似,我们使用’.'获取对象中的属性值
person.firstName //获取firstName
person.say //调用say函数
数组
定义与js数组特性
数组在js中与众多高级语言有很大的不同。首先,js的数组中的每一个值的类型是可以不相同的。例如:
var a = [1,'a',true]
但是这样并不符合我们的编程习惯,所以一般情况下用不上。
其次,js中的数组十分灵活,它的长度可变,往数组里面添加数据时,可以数组的长度会自动增长。
定义数组可以使用[],也可以使用new Array()。第二种定义类型较为麻烦,所以常使用第一种。
方法
js为数组提供了一系列方法以便开发。
- join(‘,’) //返回一个数组内容字符串,但是每个内容之间用传入的字符串隔开
- push() 和 pop() // 类似数据结构中栈的入栈与出栈,只不过这里是数组
- shift() //弹出第一个,类似出队
- reverse() //反转
- concat() //将两个数组链接起来
- slice() //接收一个或两个参数(起点与终点),以数组的形式返回之间的值
this关键字
this 表示当前对象的一个引用, 在方法中,this 表示该方法所属的对象。如果单独使用或者函数中,this 表示全局对象。
let 和 const
let与const是一种声明变量的新关键字。
使用let,声明的变量会在let所处的代码块结束后销毁,相当于局部变量。
{
let a = 1;
alert(a); //1
}
alert(a) //undefined
使用const声明一个常量,不可以被修改
const a = 1;
a = 2 ; //错
JSON
JSON 是用于存储和传输数据的格式,用于服务端向网页传递数据 。
JSON 格式在语法上与创建 JavaScript 对象代码是相同的。
{
"a" : 1 ,
"b" : "abc" ,
"c" : {
a : 1
}
}
Json数组用[]来表示
[
{json对象},
{json对象}
]