JavaScript类型转换-关于 if(xx) 和 a==b的
if(xx) 的判断
对于括号里的表达式,会被强制转换为布尔类型
数据类型 |
转换结果 |
Undefined |
false |
Null |
false |
Boolean |
直接判断 |
Number |
+0、−0、NaN 为 false, 其他 true |
String |
空字符串为 false,其他 true |
Object |
true |
a=b 的判断
a |
b |
结果 |
null |
undefined |
true (=== //false) |
Number |
String |
a == toNumber(b) |
Boolean |
(any) |
toNumber(a) == b |
Object |
String or Number |
toPrimitive(a) == b |
NaN |
NaN |
true |
toNumber
类型 |
结果 |
Undefined |
NaN |
Null |
0 |
Boolean |
ture → 1, false → 0 |
String |
“abc” → NaN, “123” → 123 |
toPrimitive
对于 Object:先尝试调用 .valueOf 方法获取结果;如果没定义,再尝试调用 .toString方法获取结果。
本文标题:JavaScript类型转换-关于 if(xx) 和 a==b的
本文链接:https://www.haomeiwen.com/subject/syftmqtx.html
网友评论