1

我想要一个所有值的列表,这些值将被评估为truefalse具有较差的相等性检查,例如!===甚至if()

我有一份多年来收集的清单,但它在我的电脑上消失了

4

1 回答 1

7

http://bonsaiden.github.com/JavaScript-Garden/#types.equality

“与其死记硬背,天知道有多少不同的比较,不如学习强制规则”……

...但这里有一个清单;)

==

""           ==   "0"           // false
0            ==   ""            // true
0            ==   "0"           // true
false        ==   "false"       // false
false        ==   "0"           // true
false        ==   undefined     // false
false        ==   null          // false
null         ==   undefined     // true
" \t\r\n"    ==   0             // true

===

""           ===   "0"           // false
0            ===   ""            // false
0            ===   "0"           // false
false        ===   "false"       // false
false        ===   "0"           // false
false        ===   undefined     // false
false        ===   null          // false
null         ===   undefined     // false
" \t\r\n"    ===   0             // false

对象

{}                 === {};       // false
new String('foo')  === 'foo';    // false
new Number(10)     === 10;       // false

var foo = {};
foo                === foo;      // true

NaN                ==   NaN      // false
NaN                ===  NaN      // false
NaN                ==   false    // false

//NaN does not coerce using non-strict equality.

29/01/14 更新:

为完整性而添加NaN

于 2012-02-23T16:40:39.137 回答