一、等号和非等号(==、!==)
这两个运算符会进行类型转换,基本规则如下:
1)如果一个运算数是Boolean值,把它转成成数字值。false转换为0,true转换为1。
2)如果一个运算符是字符串,另一个是数字,检查相等性之前,尝试把字符串转换为数字。
3)如果一个运算符是对象,另一个是字符串,检查相等性之前,尝试把对象转换为字符串(调用toString())。
4)如果一个运算符是对象,另一个是数字,检查相等性之前,尝试把对象转换为数字。
在进行比较时,该运算符还遵守下列规则:
5)值null与undefined相等。 //null==undefined -> true
6)在检查相等性时,不能把null和undefined转换为其他值。 //undefined==0 ->false ; null==0 ->false
7)NaN不等于任何值。
8)两个运算符都是对象,比较它们的引用值,指向同一个对象,那么返回true
二、全等号与非全等号
检查相等性前,不执行类型转换。
三、JavaScript真价值
1)假值:false、null、undefined、空字符串‘‘、数字0、数字NaN
2)真值:true、非空字符串、所有的对象
四、函数调用运算符()
官方假定以单词function开头的语句是一个function语句,解决方法就是把函数调用括在一个圆括号中。
(function(){//do something;}())