隐式类型转化

四则运算

  • 加法运算符+是双目运算符,只要其中一个是String类型,表达式的值便是一个String。
eg:
    var a = 2 + '3'// '23'
  • 对于其他的四则运算,只有其中一个是Number类型,表达式的值便是一个Number。
 eg:
     var a = 3 - '2'// 1
  • 对于非法字符的情况通常会返回NaN:
'1' * 'a'     // => NaN,这是因为parseInt(a)值为NaN,1 * NaN 还是 NaN

判断语句

  • 判断语句中的判断条件需要是Boolean类型,所以条件表达式会被隐式转换为Boolean。 其转换规则同Boolean的构造函数。比如:
    var obj = {};
    if(obj){
        dosomething...
    }

JavaScript 原始类型转换表

原始值转化为数值类型转化为字符串类型转化为 Boolean 类型
false0"false"false
true1"true"true
00"0"false
11"1"true
"0"0"0"true
"1"1"1"true
NaNNaN"NaN"false
InfinityInfinity"Infinity"true
-Infinity-Infinity"-Infinity"true
""0""false
"20"20"20"true
"twenty"NaN"twenty"true
[ ]0""true
[20]20"20"true
[10,20]NaN"10,20"true
["twenty"]NaN"twenty"true
["ten","twenty"]NaN"ten,twenty"true
function(){}NaN"function(){}"true
{ }NaN"[object Object]"true
null0"null"false
undefinedNaN"undefined"false