JavaScript 中==和===什么区别?我也见过!=和!==运算符。还有更多这样的运营商吗?
看看这里: http : //longgoldenears.blogspot.com/2007/09/triple-equals-in-javascript.html
3 个等号表示 “没有类型强制的平等”。使用三等于,值也必须在类型上相等。
0 == false // true
0 === false // false, because they are of a different type
1 == "1" // true, automatic type conversion for value only
1 === "1" // false, because they are of a different type
null == undefined // true
null === undefined // false
'0' == false // true
'0' === false // false
===和!==是严格的比较运算符:
JavaScript 具有严格和类型转换的相等比较。对于
strict相等,要比较的对象必须具有相同的类型,并且:
- 当两个字符串在相应位置具有相同的字符序列,相同的长度和相同的字符时,它们严格相等。
- 当两个数字在数值上相等(具有相同的数值)时,两个数字严格相等。
NaN不等于任何东西,包括NaN。正负零彼此相等。- 如果两个布尔操作数都为真或两者都为假,则它们严格相等。
- 如果两个对象引用相同的
Object则它们严格相等。Null和Undefined类型是==(但不是===)。 [即(Null==Undefined)为true但是(Null===Undefined)为false]