js隐式类型转换

隐式类型转化

四则运算

  • 加法运算符+是双目运算符,只要其中一个是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 类型
false 0 "false" false
true 1 "true" true
0 0 "0" false
1 1 "1" true
"0" 0 "0" true
"1" 1 "1" true
NaN NaN "NaN" false
Infinity Infinity "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
null 0 "null" false
undefined NaN "undefined" false
(0)

相关推荐