js怎么判断ture和false

JavaScript016

js怎么判断ture和false,第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

bif(b=="")和if(b==null)这里谁会执行呢,当然是后面一种,因为b是没有定义值的,如果是var

b="",这样的话就会执行第一种b =

1if(b==1)和if(b=="1")这里哪一种会执行呢,答案是两种都会执行!因为js的==表示的是数值相等;谢谢,希望楼主可以理解!

还有就是楼主的这种情况:

var

cc=0if(c==false)会不会执行呢,答案是肯定的;c=1if(c==true)也一样会执行!但是我们看下面这样会执行么?c=2或

者c="admin"if(c==true)alert(1)这句话会执行么,答案是否定的,因为默认表示的是,0为false而1为true,对于其他

的就没有这么定义,所以这里不会执行,当然如果你是这样if(c)那这里就会执行了!

不知道楼主看过JS的正则表达式没有?如果没有,下面的解释你听不懂,如果有,则你不用问!/[^\d]/g这是一个正则表达式,在JS中正则表达式用//表示,跟在其后的是匹配选项,比如是g表示匹配全局。比如是i则表示忽略大小写,等等,这是匹配模式。[]则是定界符,其中的字符会出现一次,而[^]则是一个否定运算,表示其中的字符不能出现!如[A-Z]就表示出现一次A-Z中的任何一个字符(当然是大写)如果是[AZ]则表示出现A或Z。[^A-Z]则表示出现的字符不能是A-Z中的任何一个!而[^0-9]则表示不能出现0-9中的任何一个!其实咱也可以换一种说法,不能出现任何一个数字,那么就可以表示成为[^\d],其中\d是元字符,表示一个数字。那么这里就是不能出现任何一个数字而已!但我也不知道为什么会这样写,纯粹是胡闹,写程序的人不知道\D是非数字吗?也就是说[0-9]=[0123456789]=\d=[\d]其实加不[]无关的!那么[^0-9]=[^0123456789]=[^\d]=\D=[\D]这写法也是可行的!为什么会有这种写法?!胡闹的吧?

js里面||代表逻辑或语句,一般“逻辑或”语句只要有一个条件满足,那么就会执行流程语句中的代码,如if(1=1 || 2=3){//执行事件1}

和逻辑或相反的还有逻辑且(&&:所有条件返回为真,放可以执行流程语句中得代码),还有逻辑非(!:否定表达式)