国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

JavaScript邏輯運(yùn)算符相關(guān)總結(jié)

瀏覽:90日期:2023-10-15 15:15:12

前言

關(guān)于 JavaScript 中的邏輯運(yùn)算符,我們經(jīng)常使用卻可能不知道它的一些機(jī)制和用法。

機(jī)制

首先我們需要知道幾種邏輯運(yùn)算符的優(yōu)先級(jí)是不同的(關(guān)于完整的運(yùn)算符優(yōu)先級(jí),看運(yùn)算符優(yōu)先級(jí)),邏輯非>邏輯與>邏輯或>條件運(yùn)算符(三目運(yùn)算符)。運(yùn)算順序條件運(yùn)算符是從右向左,而邏輯與和邏輯或都是從左向右。

//表達(dá)式的優(yōu)先級(jí)導(dǎo)致結(jié)果不同false && true || true // 結(jié)果為 truefalse && (true || true) // 結(jié)果為 false

邏輯運(yùn)算表達(dá)式返回的是字表達(dá)式的值,而不是一個(gè) Boolean,只不過很多時(shí)候我們使用邏輯表達(dá)式的地方幫我們強(qiáng)制轉(zhuǎn)換了,比如 if 語句等。

邏輯運(yùn)算符通常用于布爾型(邏輯)值。這種情況下,它們返回一個(gè)布爾值。然而, && 和 || 運(yùn)算符會(huì)返回一個(gè)指定操作數(shù)的值,因此,這些運(yùn)算符也用于非布爾值。這時(shí),它們也就會(huì)返回一個(gè)非布爾型值。

邏輯與 expression1 && expression2 的機(jī)制是,如果 expression1 能夠轉(zhuǎn)換為 true 那么返回 expression2 ,否則返回 expression1。

邏輯或 expression1 || expression2 的機(jī)制是,如果 expression1 能夠轉(zhuǎn)化為 true 那么返回 expression1,否則返回 expression2。

邏輯非 !expression ,若 expression 能夠轉(zhuǎn)化為 true 則返回 false,否則返回 true。

expression 可能是任何一種類型, 不一定是布爾值。

會(huì)被轉(zhuǎn)化為 false 的表達(dá)式有:

null NaN 0 空字符串('' or ’’ or“` “ “`) undefined

需要特別注意的是 undefined,有些表達(dá)式返回的是 undefined ,比如沒有設(shè)置 return 的函數(shù)執(zhí)行的返回值就是 undefined。

盡管 && 和 || 運(yùn)算符能夠使用非布爾值的操作數(shù), 但它們依然可以被看作是布爾操作符,因?yàn)樗鼈兊姆祷刂悼偸悄軌虮晦D(zhuǎn)換為布爾值。如果要顯式地將它們的返回值(或者表達(dá)式)轉(zhuǎn)換為布爾值,請(qǐng)使用雙重非運(yùn)算符(即!!)或者 Boolean 構(gòu)造函數(shù)。

雙重非運(yùn)算符 !! 可以將任意值強(qiáng)制轉(zhuǎn)換為布爾值,在需要條件判斷的地方經(jīng)常使用。

短路計(jì)算

邏輯運(yùn)算的機(jī)制還存在短路計(jì)算:

(some falsy expression1) && (expression2) 短路計(jì)算的結(jié)果為假。 (some truthy expression1) || (expression2) 短路計(jì)算的結(jié)果為真。

短路意味著上述表達(dá)式中的 expression2 部分不會(huì)被執(zhí)行,因此 expression2 的任何副作用都不會(huì)生效(舉個(gè)例子,如果 expression 是一次函數(shù)調(diào)用,這次調(diào)用就不會(huì)發(fā)生)。造成這種現(xiàn)象的原因是,整個(gè)表達(dá)式的值在第一個(gè)操作數(shù)被計(jì)算后已經(jīng)確定了。

用法

利用 javascript 中邏輯運(yùn)算符支持任意類型和短路計(jì)算的特性我們可以將邏輯運(yùn)算符運(yùn)用到一些特殊的地方。

邏輯與

邏輯與可以用來獲得第一個(gè)假值,比如 expr1 && expr2 && expr3,當(dāng)其中存在假值的時(shí)候會(huì)被返回。也可以類推至前面的表達(dá)式都為真的時(shí)候執(zhí)行最后一個(gè)表達(dá)式來簡化判斷邏輯的代碼,比如 x > 0 && a(),這可以代替 if 語句。

邏輯或

邏輯或可以用來設(shè)置默認(rèn)值,比如你的函數(shù)需要用戶輸入一個(gè)參數(shù),如果用戶沒有輸入則給定一個(gè)默認(rèn)值。this.a = param || {}。

以上就是JavaScript邏輯運(yùn)算符相關(guān)總結(jié)的詳細(xì)內(nèi)容,更多關(guān)于JavaScript邏輯運(yùn)算符的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 欧美全免费aaaaaa特黄在线 | 性刺激久久久久久久久 | 欧美一级乱理片免费观看 | 国产成人福利美女观看视频 | 国内精品久久久久久久久蜜桃 | 国产手机看片 | 亚洲第5页| 韩国精品视频在线观看 | 久久久久久久久久久久久久久久久 | 欧美一级毛片免费观看视频 | 精品在线播放 | 日韩三级一区 | 欧美精品久久 | 亚洲精品一区二区三区中文字幕 | 亚洲欧美另类专区 | 国产午夜免费视频片夜色 | 99视频精品免费99在线 | 国产精品亚洲欧美一级久久精品 | 久久精品视频在线观看 | 美女网站免费观看视频 | 中文字幕在线视频在线看 | 亚洲三级视频在线观看 | 免费国产成人α片 | 国产在线黄 | 精品国产高清不卡毛片 | 亚洲伊人色一综合网 | 亚洲刺激视频 | 欧美最刺激好看的一级毛片 | 久久国产精品一区二区三区 | 国产精品密蕾丝视频 | 日韩欧美在线观看视频 | 香港日本韩国三级网站 | 国产全部理论片线观看 | 久久99精品久久久久久h | 亚洲免费在线观看视频 | 白浆在线视频 | 国产三级小视频在线观看 | 中文字幕巨乱亚洲 | 最新亚洲精品国自产在线 | 欧美精品做人一级爱免费 | 国产欧美视频在线观看 |