if的判断
if(xx) {
}
对于括号里的表达式,会被强制转换成布尔类型。
Undefined 转换为 false;
Null 转换为false;
Boolean 直接转换;
Number: +0、-0、NaN 转换为 false,除此之外全为 true;
String: 空字符串为false,其他都为true。(" "这种含有空格的看起来像空字符串然而实际是非空字符串,所有的非空字符串转换为布尔值都是 true)
a == b 的判断
== 与 === 的区别在于 JavaScript 会帮我们做类型转换:
-
若两个值类型相同,则执行严格相等运算;
-
若两个值的类型不同:
①null == undefined;
②若一个是数字,一个是字符串,先将字符串转为数字再比较;
③若一个值是布尔值(true/false)则将其转为数字(1/0)再比较;
④若一个值是对象,一个是数字或字符串,则尝试使用valueOf()和toString()转换后比较;
⑤其他则不相等。
网友评论