js 中坑爹的零

js 中坑爹的0

直接上代码:

Js代码  js 中坑爹的零
  1. var a=0;  
  2. if(a){  
  3.   alert(true);  
  4. }else{  
  5.   alert(false);  
  6. }  

 运行结果是什么呢?

按照正常人的思维,应该为true,因为我们确实给a赋予了值.

但是结果往往是残酷的.

运行结果是false
js 中坑爹的零
 

Js代码  js 中坑爹的零
  1. var a=0;  
  2. if(a==false){  
  3.   alert(true);  
  4. }else{  
  5.   alert(false);  
  6. }  

 运行结果:true

 

Js代码  js 中坑爹的零
  1. var a=0;  
  2. console.log(a=='');//true  

 运行结果:

true

 

Js代码  js 中坑爹的零
  1. var a=0;  
  2. console.log(a==='');//false  

 

 

 JavaScript 的类型系统是非常混乱的,类型特性不明显,而且交叉错乱.javascript语法系统拥有一大组假值,如以下代码所示.这些值的布尔值都是false.

0           //Number

NaN      //Number

''           //String

false     //Boolean

null       //Object

undefined //Undefined