感觉和java的==和equals有的一拼,啧。
先定义几个公式,数学公式嘛,背就好了。
0==false
false==''
undefined==null
几个特殊的
[]==[] //false
NaN==NaN//false
NaN===NaN//false
//逻辑是这样的,NaN是Not a number,既然不是数值,那么两个比较凭什么要让他们相等?
一些意想不到的
undefined==undefined//true
''==''//true
false==false//true
0==0//true
//null好特殊
null==null//true
脑筋急转弯
[] == ![]
1.!运算符优先级高于赋值,赋值是倒数第二位。!会强制转化为布尔值,
[]->bool->true;![]->false;
2.变成[]==false
3.==还是遵循转化为字符串,所以[]=>’’,
空串和false相等,所以,true;