js中各种类型的变量在if条件中是true还是false,jsfalse
1个回答
展开全部
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
js中的if()判断成立与否的条件是不是只有true跟false
if(){
语句
}
当括号里面的值为0 空字符 false null undefined 的时候就相当于false 则不执行语句 除此之外的值就执行语句
javascript中 if(变量)与if(变量=true)的不同
var a;//定义一个变量没有初始化if(a){alert(1)
return};//这里不会执行,因为a没有值,所以为false;a=0//这里给a赋值为0if(a){alert(1)
return};//在来执行这句话,因为a=0;0代表false,所以还是不执行;a=1或者a=“123”;if(a){alert(1)
return};//这里a=除0以为的数,或者字符或者obj都表示为真,这里的alert就会执行! 在来看第二种情况;
var
b;if(b=="")和if(b==null)这里谁会执行呢,当然是后面一种,因为b是没有定义值的,如果是var
b="",这样的话就会执行第一种;b =
1;if(b==1)和if(b=="1")这里哪一种会执行呢,答案是两种都会执行!因为js的==表示的是数值相等;谢谢,希望楼主可以理解!
还有就是楼主的这种情况:
var
c;c=0;if(c==false)会不会执行呢,答案是肯定的;c=1;if(c==true)也一样会执行!但是我们看下面这样会执行么?c=2或
者c="admin"if(c==true)alert(1)这句话会执行么,答案是否定的,因为默认表示的是,0为false而1为true,对于其他
的就没有这么定义,所以这里不会执行,当然如果你是这样if(c)那这里就会执行了!
!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
js中的if()判断成立与否的条件是不是只有true跟false
if(){
语句
}
当括号里面的值为0 空字符 false null undefined 的时候就相当于false 则不执行语句 除此之外的值就执行语句
javascript中 if(变量)与if(变量=true)的不同
var a;//定义一个变量没有初始化if(a){alert(1)
return};//这里不会执行,因为a没有值,所以为false;a=0//这里给a赋值为0if(a){alert(1)
return};//在来执行这句话,因为a=0;0代表false,所以还是不执行;a=1或者a=“123”;if(a){alert(1)
return};//这里a=除0以为的数,或者字符或者obj都表示为真,这里的alert就会执行! 在来看第二种情况;
var
b;if(b=="")和if(b==null)这里谁会执行呢,当然是后面一种,因为b是没有定义值的,如果是var
b="",这样的话就会执行第一种;b =
1;if(b==1)和if(b=="1")这里哪一种会执行呢,答案是两种都会执行!因为js的==表示的是数值相等;谢谢,希望楼主可以理解!
还有就是楼主的这种情况:
var
c;c=0;if(c==false)会不会执行呢,答案是肯定的;c=1;if(c==true)也一样会执行!但是我们看下面这样会执行么?c=2或
者c="admin"if(c==true)alert(1)这句话会执行么,答案是否定的,因为默认表示的是,0为false而1为true,对于其他
的就没有这么定义,所以这里不会执行,当然如果你是这样if(c)那这里就会执行了!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询