操作符《JavaScript高级程序设计》

如果操作数是一个对象 返回false
如果操作数是一个空字符串 返回true
如果操作数是一个非空字符串 返回false
如果操作数是0 返回true
如果操作数是非0 返回false
如果操作数是null 返回true
如果操作数是NaN 返回true
如果操作数是undefined 返回true

+

加数 加数 结果
  NaN NaN
Infinity Infinity Infinity
-Infinity -Infinity -Infinity
Infinity -Infinity NaN
+0 +0 +0
-0 -0 -0
+0 -0 +0
字符串 字符串 字符串
字符串 转为字符串 字符串
字符串 对象、数值、布尔.toString() 字符串
字符串 String(undefined、null) 字符串
数字 null 数字
数字 undefined NaN
数字 布尔 数字
数字 Symbol() 报错
数字 对象 分情况

==

如果一个操作数是布尔值 先将其转换为数值
如果一个操作数是字符串,另一个是数字 先将字符串转为数值
如果一个操作数是对象,另一个操作数不是 先调用对象的valueOf()
NaN == NaN false
'NaN' == NaN false
NaN == 5 false
null == undefined true
null == 0 false
undefined false
原文地址:https://www.cnblogs.com/linxian95/p/10471829.html