javascript &&和||運(yùn)算法的另類使用技巧
更新時間:2009年11月28日 02:01:20 作者:
一直以為 && 和 || 這兩個偉大的運(yùn)算法只能在判斷表達(dá)式使用,也就是常在if語句使用,原來錯了,它還可以運(yùn)用在簡化選擇性執(zhí)行語句的操作,有點(diǎn)拗口,簡單點(diǎn)也就是:操作執(zhí)行某條語句,不執(zhí)行某條語句。
&&和||在JQuery源代碼內(nèi)尤為使用廣泛,由于本人沒有系統(tǒng)的學(xué)習(xí)js,所以只能粗略的自我理解出來,希望大家指點(diǎn)下。
粗略理解如下:
a() && b() :如果執(zhí)行a()后返回true,則執(zhí)行b()并返回b的值;如果執(zhí)行a()后返回false,則整個表達(dá)式返回a()的值,b()不執(zhí)行;
a() || b() :如果執(zhí)行a()后返回true,則整個表達(dá)式返回a()的值,b()不執(zhí)行;如果執(zhí)行a()后返回false,則執(zhí)行b()并返回b()的值;
&& 優(yōu)先級高于 ||
如下:
代碼
alert((1 && 3 || 0) && 4); //結(jié)果4 ①
alert(1 && 3 || 0 && 4); //結(jié)果3 ②
alert(0 && 3 || 1 && 4); //結(jié)果4 ③
分析:
語句①:1&&3 返回3 => 3 || 0 返回 3 => 3&&4 返回 4
語句②:先執(zhí)行1&&3 返回3,在執(zhí)行0&&4返回0,最后執(zhí)行結(jié)果比較 3||0 返回 3
語句③:先執(zhí)行0&&3 返回0,在執(zhí)行1&&4返回4,最后執(zhí)行結(jié)果比較 0||4 返回 4
注:非0的整數(shù)都為true,undefined、null和空字符串"" 為false。
粗略理解如下:
a() && b() :如果執(zhí)行a()后返回true,則執(zhí)行b()并返回b的值;如果執(zhí)行a()后返回false,則整個表達(dá)式返回a()的值,b()不執(zhí)行;
a() || b() :如果執(zhí)行a()后返回true,則整個表達(dá)式返回a()的值,b()不執(zhí)行;如果執(zhí)行a()后返回false,則執(zhí)行b()并返回b()的值;
&& 優(yōu)先級高于 ||
如下:
代碼
復(fù)制代碼 代碼如下:
alert((1 && 3 || 0) && 4); //結(jié)果4 ①
alert(1 && 3 || 0 && 4); //結(jié)果3 ②
alert(0 && 3 || 1 && 4); //結(jié)果4 ③
分析:
語句①:1&&3 返回3 => 3 || 0 返回 3 => 3&&4 返回 4
語句②:先執(zhí)行1&&3 返回3,在執(zhí)行0&&4返回0,最后執(zhí)行結(jié)果比較 3||0 返回 3
語句③:先執(zhí)行0&&3 返回0,在執(zhí)行1&&4返回4,最后執(zhí)行結(jié)果比較 0||4 返回 4
注:非0的整數(shù)都為true,undefined、null和空字符串"" 為false。
相關(guān)文章
JS實(shí)現(xiàn)Fisheye效果動感放大菜單代碼
這篇文章主要介紹了JS實(shí)現(xiàn)Fisheye效果動感放大菜單代碼,涉及JavaScript事假監(jiān)聽機(jī)制及定時函數(shù)等相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-10-10javascript數(shù)字?jǐn)?shù)組去重復(fù)項的實(shí)現(xiàn)代碼
console.log 不支持ie,下面的代碼需要在火狐中測試,不然會有問題。2010-12-12js實(shí)現(xiàn)點(diǎn)擊按鈕隨機(jī)生成背景顏色
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)點(diǎn)擊按鈕隨機(jī)生成背景顏色,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-09-09實(shí)現(xiàn)隔行換色效果的兩種方式【實(shí)用】
本文主要介紹了實(shí)現(xiàn)隔行顏色交替 鼠標(biāo)經(jīng)過高亮顏色的兩種方式的具體實(shí)例,有助于理解和使用。方案一:純CSS編寫;方案二:js代碼編寫。需要的朋友可以參考下2016-11-11event對象獲取方法總結(jié)在google瀏覽器下測試
Event 對象代表事件的狀態(tài),比如事件在其中發(fā)生的元素、鍵盤按鍵的狀態(tài)、鼠標(biāo)的位置、鼠標(biāo)按鈕的狀態(tài),Event對象的獲取方法如下,感興趣的朋友可以參考下2013-11-11(JS實(shí)現(xiàn))MapBar中坐標(biāo)的加密和解密的腳本
(JS實(shí)現(xiàn))MapBar中坐標(biāo)的加密和解密的腳本...2007-05-05在JavaScript中調(diào)用Java類和接口的方法
這篇文章主要講述如何在JavaScript腳本語言中調(diào)用Java類和接口,對大家的學(xué)習(xí)和工作有一定的參考借鑒價值,有需要的朋友們下面來一起看看吧。2016-09-09mysql輸出數(shù)據(jù)賦給js變量報unterminated string literal錯誤原因
mysql 數(shù)據(jù)庫數(shù)據(jù)賦給js變量報unterminated string literal錯誤原因2010-05-05