没有严格的比较,哪些值被评估为真和假?

mit*_*221 1 javascript evaluate

我希望得到一个列表,列出所有要评估的值,true或者false使用差等式检查!=,==甚至是if()

我有一个列表,我收集了多年,但它与我的PC死了

Ash*_*rke 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
Run Code Online (Sandbox Code Playgroud)

===

""           ===   "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
Run Code Online (Sandbox Code Playgroud)

对象

{}                 === {};       // 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.
Run Code Online (Sandbox Code Playgroud)

2014年1月29日更新:

添加NaN完整性.

  • 最好学习强制规则,而不是试图记住上帝的结果知道有多少不同的比较 (3认同)