2009-12-11 37 views
19

!==操作符和!=操作符有什么区别?它是否与===运算符类似,它比较值和类型?Javascript操作符!==

+0

你的问题的反向:http://stackoverflow.com/questions/359494/javascript-vs-does-it-matter-which-equal-operator-i-use – 2009-12-11 16:44:15

回答

33

是的,这是相同的运营商像===,只是平等:

!== - 如果两个操作数是不相同返回true。该运算符不会转换操作数类型,只有在类型和值相同时才返回false。 - Wikibooks

+2

+1 - 不带类型强制的不等式 – 2009-12-11 16:44:06

+0

我真的认为正确的答案需要强制性的词在其中某处。转换也是有道理的,但要简明扼要,应该明确它是一种隐含的转换发生。 – 2015-10-09 14:06:29

10

是,!==!=运营商的严格的版本,如果操作数是不同类型的无类型强制完成:

0 != ''   // false, type coercion made 
0 != '0'   // false 
false != '0'  // false 

0 !== ''   // true, no type coercion 
0 !== '0'   // true 
false !== '0'  // true 
6

我正要张贴this w3schools page,但有趣的是它不包含这个操作符!

至少,!==确实是===的倒数,它测试类型和值的相等性。