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。