- 如果是
null == undefined
或undefined == null
,则他们相等 -
如果一个是数字,一个是字符串,则先将字符串转为数字再进行比较
100 == '99';
实际上是分为两个步骤
// 第一步,先将'99'转为数字 100 == Number('99'); //第二步,进行比较,结果显然是false 100 == 99;
如果字符串不能转换为正确的数字,则会返回
NaN
,NaN
和数字进行比较,将会按照第5个规则进行比较 -
如果其中一个值是
true
,则将true
转为1
。如果其中一个值是false
,则将false
转为0
。然后按照第2个规则进行比较
例如// 例一 true == 1; //执行顺序如下 //先将 true 转为 1,结果便是进行如下比较 1 == 1; //返回值自然就是true //例二 true == '2'; //执行顺序如下 //先将 true 转为 1 1 == '2'; //再将 '2' 转为 2 1 == 2; //返回值是false
那么大家猜猜
true == 'true'
结果是什么呢? - 如果一个值是对象,另一个值是字符串或数字,则先将对象转为原始值在进行比较
- 其他不同类型之间比较,都返回
false
- 需要注意的是
NaN == NaN
,也返回false
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。