NaN Infinity undefined null 0 '' false
typeof 'number' 'number' 'undefined' 'object' 'number' 'string' 'boolean'
IF判断 else if else else else else else
String() 'NaN' 'Infinity' 'undefined' 'null' '0' '' 'false'
Number() NaN Infinity NaN 0 0 0 0

 

number与string相加,number会转换为string后再运算,number与string做减、除、乘法,则string会转换为number后再运算。

1 + ' ' = '1';

1 - ' ' = 1;

1 * ' ' = 0;

1 / ' ' = Infinity;

另外,null == undefined 为 true; null === undefined 为 false,简略的说,null是指对象为空,undefined是指被用到的变量没有被定义任何值。javascript原本是只有null的,但其作者认为null在计算时会隐式转换为0,导致有些bug不易被发现,所以后加入的undefined。