javascript bool 强制类型转换
2013-12-04 12:53
162 查看
javascript中if条件何时为true呢? 除了有一些能直接比较出结果的表达式之外,对于直接将变量放入if 括号中,何时为true,何时为false呢。下面看具体例子。
此处的大小写是不区分的。
其本质就是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需要说明,看下面例子:
原因是没有返回结果的函数值的返回结果是 undefined。而undefined 会被当做false 处理。
注意: if(a) 和if(a()) 是完全不同的。if(a)是会一直返回true的,因为他是将函数强制转换。但是if((a))是将函数的返回结果强制转换。
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))是将函数的返回结果强制转换。
相关文章推荐
- JavaScript基础 bool类型变量转成字符型 String()
- javascript中强制类型转换
- Javascript强制类型转换
- JavaScript -- 强制类型转换
- javascript学习笔记(2):强制类型转换机制和运算符
- javascript !!的作用是把一个其他类型的变量转成的bool类型
- Javascript对象Oject的强制类型转换
- JavaScript(六) 强制类型转换
- JavaScript基础 undefined转为bool类型为false Boolean()系统函数
- JavaScript基础 bool类型变量转成数值型 Number()
- JavaScript学习10 JS数据类型、强制类型转换和对象属性
- JavaScript复习之--JavaScript强制类型转换
- JavaScript 中的强制类型转换
- JavaScript基础 undefined转为bool类型为false Boolean()系统函数
- JavaScript基础 bool类型变量转成数值型 Number()
- Javascript强制类型转换
- Send a BOOL value from JavaScript to Objective-C(UIWebview interact with app)
- 详细理解javascript中的强制类型转换
- JavaScript基础 null:object 类型,转成bool类型是 :false Boolean()系统函数
- JavaScript基础 null:object 类型,转成bool类型是 :false Boolean()系统函数