javascript bool 强制类型转换

原创 2013年12月04日 12:53:30

javascript中if条件何时为true呢? 除了有一些能直接比较出结果的表达式之外,对于直接将变量放入if 括号中,何时为true,何时为false呢。下面看具体例子。

var a;
 
 if(a)
 
 {
  alert("true");
  }
   
else
  
 {
   alert("false");
   }
运行结果为 false


var a=1;
 
 if(a)
 
 {
  alert("true");
  }
   
else
  
 {
   alert("false");
   }
运行结果为 true

var a=0;
 
 if(a)
 
 {
  alert("true");
  }
   
else
  
 {
   alert("false");
   }
运行结果为 false

var a=true;//或者a="true"
 
 if(a)
 
 {
  alert("true");
  }
   
else
  
 {
   alert("false");
   }
运行结果为 true

var a=false;//或者a="false"
 
 if(a)
 
 {
  alert("true");
  }
   
else
  
 {
   alert("false");
   }
运行结果为 false

此处的大小写是不区分的。


var a="";
 if(a)
 
 {
  alert("true");
  }
   
else
  
 {
   alert("false");
   }
运行结果为 false

var a="1212";//非空字符串,并且不为"false"
// 注意包含空格的字符串也是非空的 ("   ")
 if(a)
 
 {
  alert("true");
  }
   
else
  
 {
   alert("false");
   }
运行结果为 true


其本质就是js中强制类型转换的结果,也就是其他非bool类型转换成bool类型,js处理如下:

对于var a;

1. 如果a未赋值,则为null,会被强制转换为false;

2, 如果a为数值类型的话, 0 或0.000 为false,其他非0值为true;

3. 如果a为字符串的话, “” 和“false” 会被转换成false, 注意“false” 是不区分大小写的,就是说“False”,"FAlse"等都会被转换成false。

    其他字符串被转换成true 包括含有空格的空字符串(“     ”)。

4.如果a是其他类型:数组,function,对象,则会被转换成true;

有一种a为function需要说明,看下面例子:

var a=function(){};
  
  if( a())
  {
  alert("true");
  }
   else
   {
   alert("false");
   }
结果为false.

原因是没有返回结果的函数值的返回结果是 undefined。而undefined 会被当做false 处理。

注意: if(a) 和if(a()) 是完全不同的。if(a)是会一直返回true的,因为他是将函数强制转换。但是if((a))是将函数的返回结果强制转换。


js 六种数据类型的区别及bool 转换判断

一、bool型转换判断: 1、true 和 1 比较是相同,false 和 0 比较是相同(是 “==” 比较),因为内部会实现数据类型的 转化,将true 转换成1,将false 转换成0, js...
  • kai161
  • kai161
  • 2013年12月20日 15:16
  • 9995

JS字符串False转Boolean

大家都知道在JS的世界里, 0、-0、null、""、false、undefined 或 NaN,这些都可以自动转化为布尔的 false,那么字符串的"false"是不是false呢,答案是否定的,i...

Hibernate一对一双向关联(外键关联)用法小结

Hibernate一对一双向关联(外键关联)用法小结,在实际场景中,一对一双向关联经常使用到,对于Hibernate初学者来说,这种映射往往比较特殊,如果使用MyEclipse的反向工具生成的配置文件...

关于localStorage存储json数据

有时候我们想要将一个JSON对象数据存储到localStorage中,但普通的存储肯定是不行的,因为localStorage只能存储字符串数据。//test1.html var obj = {"nam...

javascript中的强制类型转换

强制类型转换 您还可以使用强制类型转换(type casting)来处理转换值的类型。使用强制类型转换可以访问特定的值,即使它是另一种类型的。 编者注:cast 有“铸造”之意,很贴合“强...

【JavaScript】封装对象与强制类型转换

认识封装对象 在开始之前,我们先看一个例子,以便之后更轻松的理解封装对象的概念。"tick".toUpperCase //function toUpperCase() String....
  • hj7jay
  • hj7jay
  • 2017年04月19日 09:25
  • 409

JAVASCRIPT学习笔记之强制类型转换

点击有惊喜 最近在读《你不知道的javascript》系列图书,收获蛮大,感慨也挺多的。 是的,关于javascript,你不是不知道,而是真的不知道。 就比如类型转换,从开始到...

JavaScript深入理解之强制类型转换

JavaScript深入理解之强制类型转换* 在我们写代码中,常常会遇见需要进行类型转换的时候,有时是对函数参数进行类型转换,有时是对函数返回值进行类型转换,下面来聊一聊JS里面的类型转换,JS里面的...

浅谈C++中强制类型转换函数

  • 2015年05月19日 17:46
  • 61KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:javascript bool 强制类型转换
举报原因:
原因补充:

(最多只允许输入30个字)