js 中坑爹的0
直接上代码:
var a=0;
if(a){
alert(true);
}else{
alert(false);
}
运行结果是什么呢?
按照正常人的思维,应该为true,因为我们确实给a赋予了值.
但是结果往往是残酷的.
运行结果是false
var a=0;
if(a==false){
alert(true);
}else{
alert(false);
}
运行结果:true
var a=0;
console.log(a=='');//true
运行结果:
true
var a=0;
console.log(a==='');//false
javascript 的类型系统是非常混乱的,类型特性不明显,而且交叉错乱.javascript语法系统拥有一大组假值,如以下代码所示.这些值的布尔值都是false.
0 //Number
NaN //Number
” //String
false //Boolean
null //Object
undefined //Undefined