JavaScript中==和===的区别

JavaScript中=====有什么区别?我还见过!=!==运算符。还有更多这样的运算符吗?

1026531 次浏览

===!==是严格比较运算符:

JavaScript有严格和类型转换相等性比较。对于strict相等,对象是比较必须具有相同的类型和:

  • 当两个字符串具有相同的序列时,它们是严格相等的字符,相同长度,相同对应位置的字符。
  • 两个数在数值相等时严格相等(有相同的数字值)。NaN不是等于任何东西,包括NaN。正零和负零相等#36825;到对方
  • 如果两个布尔操作数都是true或true,则两个布尔操作数严格相等两者都是假的。
  • 如果两个对象引用相同的Object,则它们严格相等。
  • NullUndefined类型是==(但不是===)。[即(Null==Undefined)是true,但(Null===Undefined)是false]

比较运算符-MDC

看看这里:http://longgoldenears.blogspot.com/2007/09/triple-equals-in-javascript.html

3个等号表示“没有类型强制的相等”。使用三重等号,值在类型上也必须相等。

0 == false   // true0 === false  // false, because they are of a different type1 == "1"     // true, automatic type conversion for value only1 === "1"    // false, because they are of a different typenull == undefined // truenull === undefined // false'0' == false // true'0' === false // false