成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

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

Yangyang / 2952人閱讀

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

三目運算符相信大家都很熟悉了:

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

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

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
       )

這里的三目運算符用的是??::的形式,我搞不太懂,所以打算做個實驗搞懂它:

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

用表格記錄下4個不同點情況:

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

可以看出上面的代碼等價于:

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

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

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

比如:

?:?:?:?:?:

可以取為

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

???:::

可以取為

?(?(?:):):

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

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

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

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/82352.html

相關(guān)文章

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

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

    yy13818512006 評論0 收藏0
  • Java知識點總結(jié) (基本語法)

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

    tuantuan 評論0 收藏0
  • JAVA 三目運算時遇到

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

    jasperyang 評論0 收藏0
  • 一道三目運算測試題引發(fā)思考

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

    SHERlocked93 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<