在JavaScript和=== ===之间的区别
可能重复:
Javascript === vs ==:这与我使用的“相等”运算符有关吗?
在JavaScript和===
之间有什么区别? 我也看到了!=
和!==
运算符。 有更多这样的操作员吗?
===
和!==
是严格的比较运算符:
JavaScript有严格的和types转换的平等比较。 对于严格的平等,被比较的对象必须具有相同的types,并且:
- 两个string具有相同的字符序列,长度相同,并且在相应的位置上具有相同的字符时,它们是严格相等的。
- 两个数字在数字上相等时(数字值相同)严格相等。 NaN不等于任何东西,包括NaN。 正和负的零相等。
- 如果两个布尔操作数都为真或两者都为假,则两个布尔操作数严格相等。
- 如果两个对象引用同一个对象,则两个对象严格相等。
- 空和未定义的types是==(但不是===)。 [Ie(Null == Undefined)是true,但是(Null === Undefined)是false]
比较运算符 – MDC
看看这里: http : //longgoldenears.blogspot.com/2007/09/triple-equals-in-javascript.html
三个等号表示“没有强制的平等”。 使用三重平等,这些值的types也必须相同。
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