经常看到有人写 如下代码,有时候也是凭经验猜想到底是什么意思,本着认真学习 JavaScript 的精神,专门写一篇去讨论这个问题。
if(name){ //do something. }else{ //code }
而此时,name 在前面是被赋值过,今天专门做了一个测试,如下:测试1
var a = undefined; if(a){ console.log("true"); }else{ console.log("false"); } //输出 False
再进行下面的修改:测试2
var a = null; if(a){ console.log("true"); }else{ console.log("false"); }
//输出 False
测试3:
var a = 0; if(a){ console.log("true"); }else{ console.log("false"); } //输出 false
测试4:
var a = 1; if(a){ console.log("true"); }else{ console.log("false"); } //输出 true
测试5:
var a = ''; if(a){ console.log("true"); }else{ console.log("false"); } //输出false
测试6:
var a = '1'; if(a){ console.log("true"); }else{ console.log("false"); } //输出true
测试7:
var a = []; if(a){ console.log("true"); }else{ console.log("false"); } //输出true
测试8:
var a ; if(a){ console.log("true"); }else{ console.log("false"); } //输出false
最后:得出结论,非0 、 非undefined 、 非null 、 非空字符串 、或是自定义不赋值 如果做布尔判断,都会返回真。否则假。
莫问哥哥于 2018年1月2日