JavaScript操作符及语句
一、操作符
1、一元操作符
+号:相当于使用Number()转型函数进行转换。
逗号:var num=(5,1,4,8,0);//num的值为0
2、相等操作符(==)
值相等。
如果一个是字符串,一个是数值,则将字符串转换成数值再进行比较;
如果一个是对象,另一个不是对象,则调用对象的valueOf()方法,用得到的基本类型值再进行比较;
null和undeifined相等;
在进行相等运算符之前不要将null和undefined转换成任何形式的值;
NaN和任何类型的值都不相等包括自身;
如果两个操作数都是对象,则比较它们是不是同一对象,指向同一对象返回true,否则返回false。
全等(===)
值和类型都相等。
不全等(!==)
二、语句
1、{}块语句
没有块级作用域(但是有函数级作用域)。
一般不单独使用{},而是配合if、for语句使用。单独使用没有块级作用域将其中的语句提取出来的话就剩一堆括号。
2、try-catch语句
try后面至少接一个catch/finally。
有无异常都会执行finally,如果在内部已经处理好异常并没有抛出新的异常,外部将不会处理,如果内部没有处理异常,外部将会处理。
3、for in语句
for in会遍历对象包括其原型链上的所有属性(方法也是function类型的对象,因此也是属性,也能遍历出来);
for in遍历的顺序是不确定的,并且是enumerable为true的属性。
特殊:
IE早期版本中有个bug,原型对象中不可枚举的属性,就算在实例中添加了该属性,使用for in也不能遍历出来。此时可以使用Object.keys(obj)或Object.getOwnPropertyNames(obj)进行遍历。
4、label语句
添加相应的标签,如outmost:可以直接编写代码调到该标签的位置。
5、eval语句
立即执行。
6、with语句
将代码的作用域设置到一个特定的对象中。