日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

js中的if与Java中的if_JS直接if参数的用法JS中!和!!区别

發(fā)布時(shí)間:2025/3/12 javascript 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js中的if与Java中的if_JS直接if参数的用法JS中!和!!区别 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

經(jīng)常在JS中見一些代碼直接if(參數(shù)),然后參數(shù)調(diào)用的時(shí)候是將元素自己傳下去。例如下面代碼:

functiontest1(obj){if(obj){

alert($(obj).val());

}else{

alert("has not obj");

}

}

我們分別點(diǎn)擊上面的兩個(gè)輸入框顯示如下:

解釋:實(shí)際上相當(dāng)于java中的重載,如果傳參數(shù)了就走if(obj),不傳參數(shù)就走else。

也就是如果參數(shù)不為空或者nul或者undefinedl或者“”空串則if(obj)成立。

進(jìn)一步的測試:

functiontest1(obj){if(obj){

alert("has obj");

}else{

alert("has not obj");

}

}

test1();//has not obj

test1(null);//has not obj

test1(undefined);//has not obj

test1("");//has not obj

test1(" ");//has obj

test1("1");//has obj

總結(jié):不傳參數(shù),傳的參數(shù)為null,傳的參數(shù)為undefined,傳的參數(shù)為""的時(shí)候if(obj)不成立,反之則成立。

補(bǔ)充:直接if(param)可以用于判斷參數(shù),也相當(dāng)于if(param != null),相反if(!param)就相當(dāng)于if(param == null),例如:

functiontest(a, b) {if (!a || !b) {

alert("參數(shù)沒傳");

}else{

alert("a與b不等于null")

}

}

test();

test("1", "2");

結(jié)果:

??

補(bǔ)充:實(shí)際上是用!與上對(duì)象來求得一個(gè)布爾值,js中!和!!的區(qū)別及用法

js中!的用法是比較靈活的,它除了做邏輯運(yùn)算常常會(huì)用!做類型判斷,可以用!與上對(duì)象來求得一個(gè)布爾值,

1、!可將變量轉(zhuǎn)換成boolean類型,null、undefined和空字符串、數(shù)字0 通過!轉(zhuǎn)為boolean值0為true,其余為false。

!null=true

!undefined=true

!''=true

!100=false

!'abc'=false

!0=true

特別注意0的情況。

2、!!? 常常用來做類型判斷,在第一步!(變量)之后再做邏輯取反運(yùn)算,在js中新手常常會(huì)寫這樣臃腫的代碼:

判斷變量a為非空,未定義或者非空串才能執(zhí)行方法體的內(nèi)容

var a;if(a!=null&&typeof(a)!=undefined&&a!=''){//a有內(nèi)容才執(zhí)行的代碼

}

實(shí)際上只需要一個(gè)表達(dá)式:

if(!a){//a有內(nèi)容才執(zhí)行的代碼...

}

比如:如下一個(gè)驗(yàn)證值必填的函數(shù),有值的話返回true,沒值的話返回字符串消息"required."

functionrequired(val) {return !!val || 'required.';

}

console.log(required());

console.log(required(''));

console.log(required(0));

console.log(required("xxxxx"));

結(jié)果:

(1)required('')解釋: !'' 返回的是true, 再進(jìn)行一次!之后是false。 所以會(huì)返回后面的字符串。

(2)required("xxxxx")解釋: !"xxxxx" 返回的是false,再進(jìn)行一次 ! 返回的是true。因此不與后面的字符串進(jìn)行邏輯或運(yùn)算,直接返回true。

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的js中的if与Java中的if_JS直接if参数的用法JS中!和!!区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。