js中各种类型的在if条件中是true还是false
2014-07-16 15:57
537 查看
js的弱类型让人感觉很多东西都比较迷惑,例如变量在if条件中到底是true还是false,如果在强类型语言中将一个非boolean类型的变量放在if条件中时,是需要进行类型转换的,但是js不需要,下面来进行测试,测试常见的变量类型在if条件中的表现
设定了各种变量类型,分别放入if条件中
执行结果
可以比较清晰的看到,当变量声明但未定义、为0、为null、为undefined、为空字符串时if均当作false进行处理。
我认为(未查证)if条件中的表达式会执行一次Boolean(value);方法,得到表达式中的值
其中value值如果是任何非空字符串,非零的数字值,非null对象,均转换为true,其他均为false
所以上面的现象就不难解释
!function test1(){ <span style="color:#ff0000;">var a,b=-1,c= 1,d= 0,e=null,f=undefined,g='',h="";</span> if(!a){ console.log('a='+a) } if(!b){ console.log("b="+b) } if(!c){ console.log("c="+c) } if(!d){ console.log("d="+d) } if(!e){ console.log("e="+e) } if(!f){ console.log("f="+f) } if(!g){ console.log("g="+g) } if(!h){ console.log("h="+h) } }()
设定了各种变量类型,分别放入if条件中
执行结果
a=undefined d=0 e=null f=undefined g= h= i=false
可以比较清晰的看到,当变量声明但未定义、为0、为null、为undefined、为空字符串时if均当作false进行处理。
我认为(未查证)if条件中的表达式会执行一次Boolean(value);方法,得到表达式中的值
其中value值如果是任何非空字符串,非零的数字值,非null对象,均转换为true,其他均为false
所以上面的现象就不难解释
相关文章推荐
- js中各种类型的变量在if条件中是true还是false
- js中各种类型的变量在if条件中是true还是false
- js中各种类型的变量在if条件中是true还是false
- js中各种类型的变量在if条件中是true还是false
- 在js中if条件为null/undefined/0/NaN/""表达式时,统统被解释为false,此外均为true哦。。。(官方原文如下:)
- 在js中if条件为null/undefined/0/NaN/""表达式时,统统被解释为false,此外均为true
- 在js中if条件为null/undefined/0/NaN/""表达式时,统统被解释为false,此外均为true
- 在js中if条件为null/undefined/0/NaN/""表达式时,统统被解释为false,此外均为true哦。。。(官方原文如下:)
- JS中变量名作为if条件的 true/flase
- js中‘0’到底是 true 还是 false
- 在js中可以作为if的判断条件的类型
- js 中使if条件成立的并不只有true
- 字符串0.在php和js中转换为布尔类型 值是false还是true
- 关于如何判断if语句中是true还是false的简单方式
- 前台中: 1 和 0 传入到 vo 中 boolean 类型的是 true 还是 false?
- js 空数组是true还是false
- 总结JS中所有变量的类型和true/false
- JS 中所有的类型都有与 true 和 false 等价的值。
- js中‘0’到底是 true 还是 false
- js中,if条件为 null/undefined/0/NaN/"",结果均被解释为false