==
- 相等,判断左右两个值是否相等,如果相等返回true,如果不等返回false
- 相等会自动对两个值进行类型转换, 如果对不同的类型进行比较,会将其转换为相同的类型然后再比较,转换后相等它也会返回true
!==
- 不等,判断左右两个值是否不等,如果不等则返回true,如果相等则返回false
- 不等也会做自动的类型转换。
===
- 全等,判断左右两个值是否全等,它和相等类似,只不过它不会进行自动的类型转换,
如果两个值的类型不同,则直接返回false
!==
- 不全等,和不等类似,但是它不会进行自动的类型转换,如果两个值的类型不同,它会直接返回true
特殊的值:
- null和undefined
- 由于undefined衍生自null,所以null == undefined 会返回true。
但是 null === undefined 会返回false(类型不同)。
- NaN
- NaN不与任何值相等,报告它自身 NaN == NaN //false
- 判断一个值是否是NaN
- 使用isNaN()函数,如果是NaN,则返回true,否则返回false。
注意:在判断时,当两个的类型不同时,一般是会转换为number(这个语句console.log("as"==true),返回的是false,"as"转换为数字是为NaN,true转换为数字时是1,由于NaN与任何值都不相等,故返回false),有的不是,如:console.log(null==0);会返回false。