首页 > 字符串不是只有在空的时候才是false吗?

字符串不是只有在空的时候才是false吗?


看这个吧:http://stackoverflow.com/questions/19839952/all-falsey-values-in-javascript

这个答案把javascript所有的falsy value 都列出来了


在javascript里面,做逻辑判断的时候,null,undefined,""空字符串,0,NaN都默认是false


变量为null或者undefined时,用比较运算符时才会做转义成false


是时候祭出这个大杀器了:
https://dorey.github.io/JavaScript-Equality-Table/
点上边的三个 tab 可以分别看到 ==, ===, if() 的各种比较结果

另外,除非有明确的理由,否则最好使用 === 进行比较


var str = "hello";
console.log(str == true);

if (str) {
    console.log("if true");
}

// false
// if true

也就是说,上面的 == 判断并不是把 str 转换为布尔型来判断的,但是下面 if 语句的条件必须是布尔弄,所以是转换为布尔型来判断的,那么试试这个

console.log("true" == true);
console.log("false" == false);

// false
// false

很显示,== 也不是把布尔型转换为字符串来比较的……

其实 == 的比较确实是转换成字符串来比较但,但是在布尔型转换为字符串之前,要先转换成 Number,所以下面的实验就成功了

console.log("1" == true);
console.log("0" == false);

// true
// true
【热门文章】
【热门文章】