javascript中的真真假假
js作为一种十分随意的语言,除了正经的boolean值以外,别的东西也都能if一下。
非boolean表达式被转换为boolean结果如下
类型 | 结果 |
---|---|
Number | 0为false,其余为true |
NaN | false |
Null | false |
Udefined | false |
String | ''(空字符串)为false,其余为true |
Array | true |
Object | true |
测试几个有代表性的样例
if (0) console.log("0");
if (-1) console.log("-1");
if (NaN) console.log("NaN");
if ('') console.log("空字符串");
if (' ') console.log("空格")
if (null) console.log("null");
if (undefined) console.log("undefined");
a = new Array(); if (a) console.log("空数组");
b = new Object(); if (b) console.log('空对象');
console.log(0 == false);
console.log(1 == true);
console.log(1 == '1');
console.log(null == undefined);
console.log(NaN == false);
console.log(null == false);
console.log(undefined == false);
输出结果为
-1
空格
空数组
空对象
true
true
true
true
false
false
false