• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

    javascript基礎(chǔ)課程之邏輯表達(dá)式定義用法詳解

    來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 20:16:00
    文檔

    javascript基礎(chǔ)課程之邏輯表達(dá)式定義用法詳解

    javascript基礎(chǔ)課程之邏輯表達(dá)式定義用法詳解:邏輯運(yùn)算符"&&"、!是對操作進(jìn)行布爾算術(shù)運(yùn)算,經(jīng)常和關(guān)系運(yùn)算符一起配合使用,邏輯運(yùn)算符將多個關(guān)系表達(dá)式組合起來組成一個更復(fù)雜的表達(dá)式。i.邏輯與"&&"運(yùn)算符可以從三個不同的層次進(jìn)行理解。最簡單一層理
    推薦度:
    導(dǎo)讀javascript基礎(chǔ)課程之邏輯表達(dá)式定義用法詳解:邏輯運(yùn)算符"&&"、!是對操作進(jìn)行布爾算術(shù)運(yùn)算,經(jīng)常和關(guān)系運(yùn)算符一起配合使用,邏輯運(yùn)算符將多個關(guān)系表達(dá)式組合起來組成一個更復(fù)雜的表達(dá)式。i.邏輯與"&&"運(yùn)算符可以從三個不同的層次進(jìn)行理解。最簡單一層理

    邏輯運(yùn)算符"&&"、“||”、“!”是對操作進(jìn)行布爾算術(shù)運(yùn)算,經(jīng)常和關(guān)系運(yùn)算符一起配合使用,邏輯運(yùn)算符將多個關(guān)系表達(dá)式組合起來組成一個更復(fù)雜的表達(dá)式。

    i.邏輯與

    "&&"運(yùn)算符可以從三個不同的層次進(jìn)行理解。最簡單一層理解是,當(dāng)操作數(shù)都是布爾值是,“&&”對兩個布爾值執(zhí)行布爾與(AND)操作,只有在第一個操作數(shù)和第二個操作數(shù)都是true的時候,它才返回true.如果其中有一個操作數(shù)為false.則它返回false.

    "&&"長用來連接兩個關(guān)系表達(dá)式

    x == 0 && y == 0; //只有在x和y都是0時,才返回true
    關(guān)系表達(dá)式總是返回true或false,因此當(dāng)這樣使用的時候,“&&”本身也返回true或 false。關(guān)系運(yùn)算符的優(yōu)先級要比"&&"(和“||”)要高,因此類似這種表達(dá)式可以放心地書寫,而不用補(bǔ)充園括號。

    "&&"操作數(shù)并不一定是布爾值,回想一下,有些值是可以當(dāng)做“真值”和“假值”的。(如假值是:false null undefined 0 -0 NaN和"",所有和其它的值包括所有的對象都是真值)。對“&&”第二層理解是,“&&”是可以對真值和假值進(jìn)行布爾與(AND)操作。如果兩個操作數(shù)都是真值的,則那么返回一個真值;否則,至少一個操作數(shù)是假值的。javascript中在任何使用布爾值的地方的時候,表達(dá)式語句都會將其當(dāng)做真值或假值來對待,因此實(shí)際上“&&”并不總是返回true和false.但也并無大礙。

    需要注意的是,上文提到了運(yùn)算符返回“真值”和“假值”,但并沒說說明這個“真值”或者“假值”到底是什么值,為此我們深入討論對“&&”第三層的理解。運(yùn)算符首先計(jì)算左操作數(shù)的值,即首先計(jì)算“&&”左側(cè)的表達(dá)式,如果計(jì)算結(jié)果是假值,那么整個表達(dá)式的結(jié)果一定是假值,因此“&&”這時簡單的返回左操作的值,而并不會對右邊的操作數(shù)進(jìn)行計(jì)算。

    var o = {
     x: 1
    };
     var p = null;
     o && o.x; //=>1 : 1:0是真值,因此返回值是o.x
     p && p.x //= null :p是假值,因此將其返回,而并不計(jì)算p.x

    這對于理解“&&”可能不計(jì)算右操作數(shù)的情況至關(guān)重要,在上述代碼中,變量P的值是null,而如果計(jì)算p.x的話則會拋出一個異常錯誤,因此,只有p為真值(不能是null或undefined)的情況下才計(jì)算p.x

    "&&"的行為有時候被稱為“短路”(short circuiting),我們經(jīng)常能看到很多代碼利用了這一也行來有條件的執(zhí)行代碼。例如下面的兩條代碼是等價的

     if (a == b) stop(); //只有a==b時才能調(diào)運(yùn)stop()
     (a == b) && stop(); //同上

    一般來講,當(dāng)“&&”右側(cè)的表達(dá)式具有副作用的時候(賦值,遞增,遞減和函數(shù)調(diào)用表達(dá)式)要格外小心。因?yàn)檫@些帶有副作用的表達(dá)式的執(zhí)行時候,依賴于左操作鼠的計(jì)算結(jié)果。

    盡管“&&”可以按照第二層和第三層的理解進(jìn)行一些復(fù)雜的表達(dá)式運(yùn)算,但大多數(shù)的情況下,“&&”僅用來對真值和假值的做布爾計(jì)算。

    ii.邏輯或(||)

    "||"運(yùn)算符對兩個操作數(shù)做布爾或(OR)運(yùn)算。如果其中一個為真值,則返回真值,兩個操作數(shù)都為假值,返回假值。

    盡管“||”運(yùn)算符大多情況下只是做簡單的布爾或(OR)運(yùn)算,和“&&”一樣,也具備一些更復(fù)雜的行為,它首先計(jì)算第一個操作數(shù)的值,也就是說回首先計(jì)算左側(cè)的表達(dá)式,如果計(jì)算結(jié)果為真,則返回真值,否則,再計(jì)算第二個值。

    和“&&”一樣,用于應(yīng)該避免右操作數(shù)包含一些具有副作用的表達(dá)式,除非你目地明確在右側(cè)使用帶副作用的表達(dá)式,而有可能不會計(jì)算右側(cè)的表達(dá)式。

    這個運(yùn)算符最常用的方式是用來從一組備選的表達(dá)中選取第一個真值的表達(dá)式。

    //如果max_width已經(jīng)定義了,則直接使用它。賦值在preferences對象中查找max_width
    //如果沒有定義它,則使用一個寫死的常量。
    var max =max_width || preferences.max_windth || 500;

    這種貫用法通常在函數(shù)體內(nèi),用來給參數(shù)提供默認(rèn)值。

    //將o成功的屬性復(fù)制到p中,并返回p
    function copy(o, p) {
    p = p || {}; //如果向參數(shù)p沒有傳入任何對象,則使用一個新創(chuàng)建對象。
    //函數(shù)體內(nèi)的主邏輯

    iii.邏輯非(!)

    "!"運(yùn)算符是一元運(yùn)算符,它放置在一個單獨(dú)操作數(shù)之前。它的目的是將操作數(shù)的布爾值求反。

    和"&&"、"||"運(yùn)算符不同,“!”運(yùn)算符首先將其操作數(shù)轉(zhuǎn)換為布爾值,然后再對布爾值求反。也就是"!"總是返回true和 false。并且,可以通過使用兩次邏輯非運(yùn)算來得到一個值的布爾值:

    “!”具有很高的優(yōu)先級,并且和操作數(shù)緊密的綁在一起,如果希望對p && q,則需要園括號!(p && q)。如下代碼:

    !(p && q) === !p || !q
     !(p || q) === !p && !q

    對于p和q取任何值,這兩個表達(dá)式永遠(yuǎn)成立。

    聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    javascript基礎(chǔ)課程之邏輯表達(dá)式定義用法詳解

    javascript基礎(chǔ)課程之邏輯表達(dá)式定義用法詳解:邏輯運(yùn)算符"&&"、!是對操作進(jìn)行布爾算術(shù)運(yùn)算,經(jīng)常和關(guān)系運(yùn)算符一起配合使用,邏輯運(yùn)算符將多個關(guān)系表達(dá)式組合起來組成一個更復(fù)雜的表達(dá)式。i.邏輯與"&&"運(yùn)算符可以從三個不同的層次進(jìn)行理解。最簡單一層理
    推薦度:
    標(biāo)簽: 使用 定義 講解
    • 熱門焦點(diǎn)

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 久久精品国产网红主播| 成人精品在线视频| 久久精品aⅴ无码中文字字幕不卡| 精品国产午夜福利在线观看| 伊人精品视频在线| 精品国产亚洲一区二区三区| 亚洲国产精品无码中文字| 精品国产毛片一区二区无码| 2021久久精品国产99国产精品| 亚洲中文精品久久久久久不卡| 久久se精品一区二区影院| 久久99热国产这有精品| 国语自产少妇精品视频蜜桃| 一本久久a久久精品亚洲| 久久久久久无码国产精品中文字幕 | 欧美精品一区二区三区视频| 久久国产精品一国产精品金尊| 亚洲精品视频在线观看你懂的| 精品一久久香蕉国产线看播放| 成人精品一区二区久久| 久久精品国产精品国产精品污| 国产91精品在线观看| 经典国产乱子伦精品视频| 久久亚洲欧美国产精品| 久久精品中文騷妇女内射| 精品久久久久久国产潘金莲| 四虎国产精品成人免费久久| 久久久久久国产精品免费免费| 久久久久成人精品无码| 精品欧美一区二区在线看片| 国产在线观看一区二区三区精品| 国产精品免费αv视频| 国产精品粉嫩美女在线观看| 99久久99久久精品国产片| 国产成人精品免高潮在线观看| 97久视频精品视频在线老司机| 国产成人精品久久亚洲高清不卡 | 国产精品一区二区三区99| 久久精品视屏| 亚洲愉拍99热成人精品热久久 | 99麻豆久久久国产精品免费|