JavaScript中的邏輯判斷符&&、||與!介紹
與C、Java等語(yǔ)言一樣,JavaScript中可以用&&、||、!三個(gè)邏輯判斷符來(lái)對(duì)boolean值進(jìn)行邏輯判斷。與C、Java不同的是,JavaScript中邏輯與(&&)和邏輯或(||)操作符可以應(yīng)用在任何值上,而操作結(jié)束后返回的也不一定是boolean值。
邏輯與&&的處理規(guī)則
JavaScript中&&的處理規(guī)則是這樣的:
1.判斷第一個(gè)值是否為Falsy。如果為Falsy,則直接返回第一個(gè)值(不一定為boolean類(lèi)型)。
2.如果第一個(gè)值為T(mén)ruthy,則直接返回第二個(gè)值(不一定為boolean類(lèi)型)。
var o = {x:1, y:2};
console.log(o && o.y);//2
console.log(null && x);//null
邏輯或||的處理規(guī)則
與&&操作符類(lèi)似,JavaScript中||的處理規(guī)則是這樣的:
1.判斷第一個(gè)值是否為T(mén)ruthy。如果為T(mén)ruthy,則直接返回第一個(gè)值(不一定為boolean類(lèi)型)。
2.如果第一個(gè)值為Falsy,則直接返回第二個(gè)值(不一定為boolean類(lèi)型)。
||操作符的這種行為使得JavaScript中一些快捷寫(xiě)法成為現(xiàn)實(shí):
1. 從一系列值中獲取第一個(gè)Truthy值:
var a = null;
var b = 42;
var v = a || b || 100;
console.log(v);//42
2. 對(duì)函數(shù)中的參數(shù)賦以默認(rèn)值:
function test(p){
p = p || {};//if p is not passed, make it an empty object.
}
與&&和||不同,!操作符的行為與C、Java等語(yǔ)言是一致的,只返回boolean值(true或false)。
相關(guān)文章
JavaScript求一組數(shù)的最小公倍數(shù)和最大公約數(shù)常用算法詳解【面向?qū)ο?,回歸迭代和循環(huán)】
這篇文章主要介紹了JavaScript求一組數(shù)的最小公倍數(shù)和最大公約數(shù)常用算法,結(jié)合實(shí)例形式分析了javascript基于面向?qū)ο?,回歸迭代和循環(huán)等算法求解一組數(shù)的最小公倍數(shù)與最大公約數(shù)相關(guān)操作技巧,需要的朋友可以參考下2018-05-05JavaScript Canvas繪制圓形時(shí)鐘效果
這篇文章主要為大家詳細(xì)介紹了JavaScript Canvas繪制圓形時(shí)鐘效果的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04基于JS代碼實(shí)現(xiàn)當(dāng)鼠標(biāo)懸停表格上顯示這一格的全部?jī)?nèi)容
這篇文章主要介紹了基于JS代碼實(shí)現(xiàn)當(dāng)鼠標(biāo)懸停表格上顯示這一格的全部?jī)?nèi)容 的相關(guān)資料,需要的朋友可以參考下2016-06-06JavaScript/jQuery 表單美化插件小結(jié)
用過(guò)一些表單美化的工具,覺(jué)得不錯(cuò),特地分享一下2012-02-02微信小程序開(kāi)發(fā)實(shí)現(xiàn)消息推送
這篇文章主要為大家詳細(xì)介紹了微信小程序開(kāi)發(fā)實(shí)現(xiàn)消息推送,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05webpack項(xiàng)目輕松混用css module的方法
這篇文章主要介紹了webpack項(xiàng)目輕松混用css module的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06