亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

三目(三元)運(yùn)算符??::的形式

Yangyang / 2998人閱讀

摘要:注意,三目運(yùn)算符中和是成對(duì)出現(xiàn)的,最起碼數(shù)量上,有幾個(gè)就會(huì)有幾個(gè)

三目運(yùn)算符相信大家都很熟悉了:

foo ? "foo == true" : "foo == false"

而三目運(yùn)算符?:?:?.....的調(diào)用方式大家也不陌生, 就相當(dāng)于一堆if - else if語(yǔ)句:

foo ? "foo == true" : bar ? "bar == true" : "bar == false"

但是在zepto.js里有一段代碼:

slice.call(
         isSimple && !maybeID && element.getElementsByClassName ? // DocumentFragment doesn"t have getElementsByClassName/TagName
           maybeClass ? element.getElementsByClassName(nameOnly) : // If it"s simple, it could be a class
           element.getElementsByTagName(selector) : // Or a tag
           element.querySelectorAll(selector) // Or it"s not simple, and we need to query all
       )

這里的三目運(yùn)算符用的是??::的形式,我搞不太懂,所以打算做個(gè)實(shí)驗(yàn)搞懂它:

var bool1 = true, bool2 = true, val1 = "val1", val2 = "val2", val3 = "val3";
  console.log(bool1 ? bool2 ? val1 : val2 : val3);

用表格記錄下4個(gè)不同點(diǎn)情況:

bool1    bool2    值
true     true     val1
true     false    val2
false    true     val3
false    false    val3

可以看出上面的代碼等價(jià)于:

console.log(bool1 ? ( bool2 ? val1 : val2 ) : val3);

條件(三元)運(yùn)算符 -mdn上說(shuō)三目運(yùn)算符具有右結(jié)合性,根據(jù)以上兩個(gè)例子,我總結(jié)三目運(yùn)算符右結(jié)合性的意思是:

從最右邊取":", 然后看它左邊相鄰的符號(hào),如果是"?",那么它和這個(gè)"?"結(jié)合起來(lái),可以用一個(gè)()把它倆包住;如果左邊相鄰的符號(hào)是":",那么取左邊的":",再重復(fù)這個(gè)判斷.

比如:

?:?:?:?:?:

可以取為

?:(?:(?:(?:(?:))))

???:::

可以取為

?(?(?:):):

然后根據(jù)你加上的括號(hào),可以寫(xiě)出等價(jià)的if判斷語(yǔ)句,這樣就能理解復(fù)雜三目運(yùn)算符所包含的意義了。

注意,三目運(yùn)算符中"?"和":"是成對(duì)出現(xiàn)的,最起碼數(shù)量上,有幾個(gè)"?"就會(huì)有幾個(gè)":".

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/82352.html

相關(guān)文章

  • JavaScript面向?qū)ο?/b>

    摘要:布爾,值為或數(shù)字,值為任何整數(shù)或浮點(diǎn)數(shù)數(shù)字符串,值為由單引號(hào)或雙引號(hào)括出的單個(gè)字符或連續(xù)字符空類型,其僅有一個(gè)值未定義,其僅有一個(gè)值原始類型的值是直接保存在變量中,用進(jìn)行驗(yàn)證。 數(shù)據(jù)類型 在JavaScript中,數(shù)據(jù)類型有兩種類型: 1.原始類型:值直接保存在變量本地的數(shù)據(jù)類型。 boolean:布爾,值為true或false number:數(shù)字,值為任何整數(shù)或浮點(diǎn)數(shù)數(shù) string...

    yy13818512006 評(píng)論0 收藏0
  • Java知識(shí)點(diǎn)總結(jié) (基本語(yǔ)法)

    摘要:強(qiáng)制類型轉(zhuǎn)換下標(biāo)運(yùn)算符變量與常量常量是在程序中的不會(huì)變化的數(shù)據(jù)變量其實(shí)就是內(nèi)存中的一個(gè)存儲(chǔ)空間,用于存儲(chǔ)數(shù)據(jù)。表示結(jié)束本次循環(huán),繼續(xù)下次循環(huán)。 Java知識(shí)點(diǎn)總結(jié) (基本語(yǔ)法) @(Java知識(shí)點(diǎn)總結(jié))[Java, Java基本語(yǔ)法] @(Java開(kāi)發(fā))[Java基本語(yǔ)法] [toc] Java特點(diǎn) 簡(jiǎn)單自然平臺(tái)可移植性支持函數(shù)式編程JIT 編譯更好的并發(fā)編程健壯安全 執(zhí)行方式 編譯...

    tuantuan 評(píng)論0 收藏0
  • JAVA 三目運(yùn)算時(shí)遇到

    摘要:但是,三目運(yùn)算符也是有一定的語(yǔ)言規(guī)范的。一三目運(yùn)算符對(duì)于條件表達(dá)式,先計(jì)算條件,然后進(jìn)行判斷。那么,這段代碼為什么會(huì)自動(dòng)拆箱呢這其實(shí)是三目運(yùn)算符的語(yǔ)法規(guī)范。所以,結(jié)果就是由于使用了三目運(yùn)算符,并且第二第三位操作數(shù)分別是基本類型和對(duì)象。 三目運(yùn)算符是我們經(jīng)常在代碼中使用的,a= (b==null?0:1);這樣一行代碼可以代替一個(gè)if-else,可以使代碼變得清爽易讀。 但是,三目運(yùn)算符...

    jasperyang 評(píng)論0 收藏0
  • 一道三目運(yùn)算測(cè)試題引發(fā)思考

    摘要:因?yàn)榧臃ǖ膬?yōu)先級(jí)比條件運(yùn)算符高,所以先運(yùn)算加號(hào),是字符串拼接,結(jié)果是非空字符串,在中字符串的布爾類型為。知識(shí)點(diǎn)三目運(yùn)算為真執(zhí)行為假執(zhí)行運(yùn)算優(yōu)先級(jí)在中布爾類型只有以下種情況為假,其他都為真。 一、測(cè)試題 原題:以下代碼的輸出是? var val = false; alert(val is + val ? true : false); 解析: 1. 此題考察的知識(shí)點(diǎn): 三目運(yùn)算、**運(yùn)...

    SHERlocked93 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<