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
posted @ 2020-04-23 23:01  Minstrel223  阅读(92)  评论(0编辑  收藏  举报