概述
js的弱类型让人感觉很多东西都比较迷惑,例如变量在if条件中到底是true还是false,如果在强类型语言中将一个非boolean类型的变量放在if条件中时,是需要进行类型转换的,但是js不需要,下面来进行测试,测试常见的变量类型在if条件中的表现
!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所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复