站長(zhǎng)資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        一文詳解JS中三元運(yùn)算符的語(yǔ)法和常見(jiàn)用法

        本篇文章帶大家探討一下 JavaScript 中三元運(yùn)算符的語(yǔ)法及其一些常見(jiàn)用法,希望對(duì)大家有所幫助!

        一文詳解JS中三元運(yùn)算符的語(yǔ)法和常見(jiàn)用法

        前端(vue)入門(mén)到精通課程:進(jìn)入學(xué)習(xí)
        Apipost = Postman + Swagger + Mock + Jmeter 超好用的API調(diào)試工具:點(diǎn)擊使用

        三元運(yùn)算符(也稱(chēng)為條件運(yùn)算符)可用于執(zhí)行內(nèi)聯(lián)條件檢查,而不是使用if...else語(yǔ)句。它使代碼更短,更易讀。它可用于根據(jù)條件為變量賦值,或根據(jù)條件執(zhí)行表達(dá)式。

        語(yǔ)法

        三元運(yùn)算符接受三個(gè)操作數(shù);它是JavaScript中唯一能做到這一點(diǎn)的運(yùn)算符。您提供一個(gè)要測(cè)試的條件,后跟一個(gè)問(wèn)號(hào),然后是兩個(gè)用冒號(hào)分隔的表達(dá)式。如果條件被認(rèn)為為真,則執(zhí)行第一個(gè)表達(dá)式;如果它被認(rèn)為是假的,則執(zhí)行最終的表達(dá)式。

        它以以下格式使用:

        condition ? expr1 : expr2
        登錄后復(fù)制

        這里,condition是要測(cè)試的條件。如果其值被認(rèn)為是trueexpr1則執(zhí)行。否則,如果其值被認(rèn)為是falseexpr2則執(zhí)行。

        expr1并且expr2是任何一種表達(dá)方式。它們可以是變量、函數(shù)調(diào)用,甚至是其他條件。

        例如:

        1 > 2 ? console.log("true") : console.log('false');
        登錄后復(fù)制

        使用三元運(yùn)算符進(jìn)行賦值

        三元運(yùn)算符最常見(jiàn)的用例之一是決定將哪個(gè)值分配給變量。通常,一個(gè)變量的值可能取決于另一個(gè)變量或條件的值。

        雖然這可以使用if...else語(yǔ)句來(lái)完成,但它會(huì)使代碼更長(zhǎng)且可讀性更低。例如:

        const numbers = [1,2,3]; let message; if (numbers.length > 2) {   message = '數(shù)組太長(zhǎng)'; } else {   message = '數(shù)組太短'; }  console.log(message); // 數(shù)組太長(zhǎng)
        登錄后復(fù)制

        在此代碼示例中,您首先定義變量message。然后,您使用該if...else語(yǔ)句來(lái)確定變量的值。

        這可以使用三元運(yùn)算符在一行中簡(jiǎn)單地完成:

        const numbers = [1,2,3]; let message = numbers.length > 2 ? '數(shù)組太長(zhǎng)' : '數(shù)組太短';  console.log(message); // 數(shù)組太長(zhǎng)
        登錄后復(fù)制

        使用三元運(yùn)算符執(zhí)行表達(dá)式

        三元運(yùn)算符可用于執(zhí)行任何類(lèi)型的表達(dá)式。

        例如,如果您想根據(jù)變量的值決定運(yùn)行哪個(gè)函數(shù),您可以使用以下if...else語(yǔ)句執(zhí)行此操作:

        if (feedback === "yes") {   sayThankYou(); } else {   saySorry(); }
        登錄后復(fù)制

        這可以使用三元運(yùn)算符在一行中完成:

        feedback === "yes" ? sayThankYou() : saySorry();
        登錄后復(fù)制

        如果feedback具有 value yes,則將sayThankYou調(diào)用并執(zhí)行該函數(shù)。否則,該saySorry函數(shù)將被調(diào)用并執(zhí)行。

        使用三元運(yùn)算符進(jìn)行空檢查

        在許多情況下,您可能正在處理可能有也可能沒(méi)有定義值的變量——例如,從用戶(hù)輸入檢索結(jié)果時(shí),或從服務(wù)器檢索數(shù)據(jù)時(shí)。

        使用三元運(yùn)算符,您可以通過(guò)在條件操作數(shù)的位置傳遞變量名稱(chēng)來(lái)檢查變量是否存在nullundefined

        這在變量是對(duì)象時(shí)特別有用。如果您嘗試訪問(wèn)實(shí)際上是nullor的對(duì)象上的屬性undefined,則會(huì)發(fā)生錯(cuò)誤。首先檢查對(duì)象是否實(shí)際設(shè)置可以幫助您避免錯(cuò)誤。

        例如:

        let book = { name: '小明', works: '斗破蒼穹' }; console.log(book ? book.name : '張三'); // "小明"  book = null; console.log(book ? book.name : '張三'); // "張三"
        登錄后復(fù)制

        在此代碼塊的第一部分,book是一個(gè)具有兩個(gè)屬性的對(duì)象 –nameworks在上使用三元運(yùn)算符時(shí)book,它會(huì)檢查它是否不是nullor undefined。如果不是——意味著它有一個(gè)值——name則訪問(wèn)該屬性并將輸出控制臺(tái)。否則,如果它為空,張三輸出控制臺(tái)。

        因?yàn)?code>bookis not null,所以書(shū)名會(huì)記錄在控制臺(tái)中。但是,在第二部分中,當(dāng)應(yīng)用相同的條件時(shí),三元運(yùn)算符中的條件將失敗,因?yàn)?code>bookis null。因此,“張三”輸出控制臺(tái)。

        嵌套條件

        盡管三元運(yùn)算符是內(nèi)聯(lián)使用的,但可以將多個(gè)條件用作三元運(yùn)算符表達(dá)式的一部分。您可以嵌套或鏈接多個(gè)條件來(lái)執(zhí)行類(lèi)似于if...else if...else語(yǔ)句的條件檢查。

        例如,一個(gè)變量的值可能取決于多個(gè)條件。它可以使用if...else if...else

        let score = '67'; let grade; if (score < 50) {   grade = 'F'; } else if (score < 70) {   grade = 'D' } else if (score < 80) {   grade = 'C' } else if (score < 90) {   grade = 'B' } else {   grade = 'A' }  console.log(grade); // "D"
        登錄后復(fù)制

        在此代碼塊中,您測(cè)試變量的多個(gè)條件score以確定變量的字母等級(jí)。

        可以使用三元運(yùn)算符執(zhí)行這些相同的條件,如下所示:

        let score = '67'; let grade = score < 50 ? 'F'   : score < 70 ? 'D'   : score < 80 ? 'C'   : score < 90 ? 'B'   : 'A';  console.log(grade); // "D"
        登錄后復(fù)制

        評(píng)估第一個(gè)條件,即score < 50。如果是true,那么 的grade值為F。如果是false,則計(jì)算第二個(gè)表達(dá)式,即score < 70

        這一直持續(xù)到所有條件都為false,這意味著等級(jí)的值將為A,或者直到其中一個(gè)條件被評(píng)估為true并且其真實(shí)值被分配給grade

        示例

        在這個(gè)實(shí)時(shí)示例中,您可以測(cè)試三元運(yùn)算符如何在

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 国产一区麻豆剧传媒果冻精品| 午夜国产精品无套| 99久久夜色精品国产网站| 亚洲国产精品一区第二页| 四虎国产精品永久地址99| 久久久久久夜精品精品免费啦| 欧美亚洲日本久久精品| 99精品在线免费| 成人午夜视频精品一区| 久久九九有精品国产23百花影院| 自拍偷自拍亚洲精品被多人伦好爽 | 99久久久精品| 久久久免费精品re6| 香蕉依依精品视频在线播放| 国产成人精品久久亚洲高清不卡 国产成人精品久久亚洲高清不卡 国产成人精品久久亚洲 | 国产99久久九九精品无码| 国产精品对白刺激久久久| 亚洲精品成人无限看| 亚洲а∨天堂久久精品9966| 精品乱码久久久久久夜夜嗨| 国产精品超碰12396| 在线观看91精品国产入口| 久久精品国产99国产精偷 | 精品综合久久久久久888蜜芽| 亚洲精品美女久久777777| 亚洲欧美日韩国产精品影院 | 2022精品天堂在线视频| 精品调教CHINESEGAY| 四虎国产精品永久免费网址| 最新精品露脸国产在线| 精品国产成人在线| 国产午夜精品理论片| 国产精品区AV一区二区| 国产精品亚洲二区在线观看| 国产精品激情综合久久| 99久久伊人精品综合观看| 9re热国产这里只有精品| 99久久国产主播综合精品| 国产精品v欧美精品v日本精| 国产精品乱伦| 欧美精品高清在线xxxx|