隐式类型转化
四则运算
- 加法
运算符+ 是双目运算符,只要其中一个是String类型,表达式的值便是一个String。
eg:
var a = 2 + '3'// '23'
- 对于其他的四则运算,只有其中一个是Number类型,表达式的值便是一个Number。
eg:
var a = 3 - '2'// 1
'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 |
|