JavaScript中的数据类型转换
1 "+"的数据类型转换
1.1数字+其他[数字,字符串 boolean null undefinde,{} ,[] ]
数字+其他[数字,字符串 boolean null undefinde,{} ,[] ]
1+1 //正常加减
2
1+"1" //数字+字符串 数字会转化为string 在拼接
"11"
1+false //数字+boolean boolean转化为数字
1
1+null //数字+null null 转化为数字 0
1
1+undefined //数字+undefined undefined 转化为数字NAN
NaN
1+{} //数字+{} {}.toString() '[object Object]'
"1[object Object]"
1+[] //数字+[] [].toString() '' [1].toString() "1" [1,2].toString() "1,2"
"1"
1.2字符串+其他[数字,字符串 boolean null undefinde,{} ,[] ]
字符串+其他[数字,字符串 boolean null undefinde,{} ,[] ]
"1"+1 //字符 +数字 数字转化为string
"11"
"1"+"1" //字符串+字符串 正常拼接
"11"
"1"+false //字符串+booean boolean进行tostring转化为字符
"1false"
"1"+null //字符串+null String(null)--'null'
"1null"
"1"+undefined //字符串+undefined String(undefined )--'undefined '
"1undefined"
"1"+{} //字符串+{} {}.toString "[object Object]"
"1[object Object]"
"1"+[] //字符串+[] [].toString [1].toString() "1" [1,2].toString() "1,2"
"1"
总结
方式 | 结果 |
---|---|
数字+字符串 | 会拼接 |
数字+boolean null undefinde | boolean null undefinde向着数字转换 |
数字+[] {} | {} [] 会tostring() 在进行数字+字符的拼接 |
字符串+boolean null undefinde | boolean null undefinde向着字符串转换 |
字符串+[] {} | {} [] 会tostring() 在进行数字+字符的拼接 |
方式 | 结果 |
---|---|
boolean null undefinde | 两面派遇到数字就转数字 遇到字符串就转化为字符串 |
数字+字符串 | 字符串 nb 隔着他来 |
[] {} | {} [] 比较耿直 直接tostring 走起 |
- “==” 的数据类型转换
请记住4条
方式 |
---|
NAN和谁都不相等 包括自身 |
null==undefinde |
对象==字符串 对象---->string |
其他==全部转化为数字 |