javascript中關(guān)于&& 和 || 表達(dá)式的小技巧分享
如果你還是新手, 而且讀完所有這些技巧的詳解和每種技巧是如果工作的以后運(yùn)用它們, 你會(huì)寫(xiě)出更加簡(jiǎn)練高效的JavaScript程序.
確實(shí), JavaScript高手已經(jīng)運(yùn)用這些技巧寫(xiě)出了很多強(qiáng)大, 高效的JavaScript程序. 但是你可以這樣.
強(qiáng)大的 && 和 || 表達(dá)式
你可能在JavaScript庫(kù)和JavaScript框架中已經(jīng)見(jiàn)過(guò)它們了, 那么我們先由幾個(gè)基本的例子開(kāi)始:
例子1. || (或)
設(shè)置默認(rèn)值, 通常用
function documentTitle(theTitle) {
if (!theTitle) {
theTitle = "Untitled Document";
}
}
用這代替:
function documentTitle(theTitle) {
theTitle = theTitle || "Untitled Document";
}
解析:
首先, 閱讀以下的"提示"框復(fù)習(xí)JavaScript是如何判斷布爾值的
|| 操作符首先從左開(kāi)始判斷表達(dá)式的真假, 如果為真, 馬上返回左邊表達(dá)式返回的值; 如果左邊表達(dá)式被判斷為假, 則繼續(xù)判斷右邊的表達(dá)式, 并返回右邊表達(dá)式的值
如果theTitle被判斷為假, 會(huì)返回右邊表達(dá)式的值. 換句話說(shuō), 如果theTitle變量被判斷為真, 則返回theTitle的值.
! 提示:
JavaScript判斷為假的值: null, false, 0, undefined, NaN 和 ""(空字符串).
記住像Infinity(無(wú)限大)這種 NaN 類(lèi)的值是被判斷為真不是假. 然而, NaN被判斷為假.
除了以上這些, 其他值全部被判斷為真.
例子2. &&(并)
不要這么做:
function isAdult(age) { if (age && age > 17) { return true; } else { return false; } }
用這代替:
function isAdult(age) {
return age && age > 17;
}
解析:
&& 操作符從左開(kāi)始判斷表達(dá)式, 如果左邊的表達(dá)式被判斷為假, 這馬上返回false, 不管右邊的表達(dá)式是否為真.
如果左邊的表達(dá)式為真, 則繼續(xù)判斷右邊的表達(dá)式, 然后返回右邊表達(dá)式結(jié)果
這變得越來(lái)越有趣了
例子3.
不要這樣做:
if (userName) { logIn(userName); } else { signUp(); }
用這代替:
userName && logIn(userName) || signUp();
解析:
如果userName為真, 調(diào)用logIn函數(shù)并傳遞userName變量
如果userName為假, 調(diào)用logIn函數(shù)不傳遞任何變量
例子4.
不要這樣做:
var userID; if (userName && userName.loggedIn) { userID = userName.id; } else { userID = null; }
用這代替:
var userID = userName && userName.loggedIn && userName.id;
解析:
如果userName為真, 則調(diào)用user.loggedIn, 并檢查user.loggedIn是否為真; 如果返回真, 則返回第三個(gè)表達(dá)式的返回值
如果userName為空, 返回null
以上所述就是本文給大家分享的第一個(gè)javascript小技巧了,希望大家能夠喜歡。
相關(guān)文章
詳解JavaScript如何利用異步解密回調(diào)地獄
為了更好地處理這些異步操作,JavaScript?引入了異步編程的概念,這篇文章主要來(lái)和大家詳細(xì)聊聊JavaScript中異步的相關(guān)應(yīng)用,希望對(duì)大家有所幫助2024-02-02一個(gè)簡(jiǎn)單不報(bào)錯(cuò)的summernote 圖片上傳案例
下面小編就為大家?guī)?lái)一篇一個(gè)簡(jiǎn)單不報(bào)錯(cuò)的summernote圖片上傳案例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-07-07JavaScript實(shí)現(xiàn)刪除,移動(dòng)和復(fù)制文件的方法
這篇文章主要介紹了JavaScript實(shí)現(xiàn)刪除,移動(dòng)和復(fù)制文件的方法,涉及javascript使用ActiveXObject控件操作文件的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08微信小程序中限制激勵(lì)式視頻廣告位顯示次數(shù)(實(shí)現(xiàn)思路)
本文給大家分享微信小程序中限制激勵(lì)式視頻廣告位顯示次數(shù),本文通過(guò)實(shí)例代碼來(lái)說(shuō)明,感興趣的朋友跟隨小編一起看看吧2019-12-12詳解JS中定時(shí)器setInterval和setTImeout的this指向問(wèn)題
在js中setTimeout和setInterval都是用來(lái)定時(shí)的一個(gè)功能,下面這篇文章主要給介紹了JS中setInterval和setTImeout的this指向問(wèn)題,文中通過(guò)示例介紹的很詳細(xì),有需要的朋友可以參考借鑒,一起來(lái)看看吧。2017-01-01JS實(shí)現(xiàn)表單多文件上傳樣式美化支持選中文件后刪除相關(guān)項(xiàng)
在項(xiàng)目開(kāi)發(fā)中我們經(jīng)常遇到文件上傳的功能,根據(jù)需求有多文件上傳和單文件上傳,今天小編給大家實(shí)例講解下表單多文件上傳樣式美化支持選中文件后刪除相關(guān)項(xiàng),非常不錯(cuò),感興趣的朋友一起看看吧2016-09-09javascript實(shí)現(xiàn)漢字轉(zhuǎn)拼音代碼分享
這篇文章主要介紹了javascript實(shí)現(xiàn)漢字轉(zhuǎn)拼音代碼分享,非常的實(shí)用,從項(xiàng)目中分離出來(lái)的,這里分享給大家,有需要的小伙伴可以參考下。2015-04-04