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

        一文詳解JS中三元運算符的語法和常見用法

        本篇文章帶大家探討一下 JavaScript 中三元運算符的語法及其一些常見用法,希望對大家有所幫助!

        一文詳解JS中三元運算符的語法和常見用法

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

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

        語法

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

        它以以下格式使用:

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

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

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

        例如:

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

        使用三元運算符進行賦值

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

        雖然這可以使用if...else語句來完成,但它會使代碼更長且可讀性更低。例如:

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

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

        這可以使用三元運算符在一行中簡單地完成:

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

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

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

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

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

        這可以使用三元運算符在一行中完成:

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

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

        使用三元運算符進行空檢查

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

        使用三元運算符,您可以通過在條件操作數(shù)的位置傳遞變量名稱來檢查變量是否存在nullundefined

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

        例如:

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

        在此代碼塊的第一部分,book是一個具有兩個屬性的對象 –nameworks在上使用三元運算符時book,它會檢查它是否不是nullor undefined。如果不是——意味著它有一個值——name則訪問該屬性并將輸出控制臺。否則,如果它為空,張三輸出控制臺。

        因為bookis not null,所以書名會記錄在控制臺中。但是,在第二部分中,當(dāng)應(yīng)用相同的條件時,三元運算符中的條件將失敗,因為bookis null。因此,“張三”輸出控制臺。

        嵌套條件

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

        例如,一個變量的值可能取決于多個條件。它可以使用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ù)制

        在此代碼塊中,您測試變量的多個條件score以確定變量的字母等級。

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

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

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

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

        示例

        在這個實時示例中,您可以測試三元運算符如何在

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
        主站蜘蛛池模板: 日韩人妻无码精品无码中文字幕 | 国产精品99精品视频网站| 宅男宅女精品国产AV天堂| 久久久这里有精品中文字幕| 精品无人区一区二区三区| 精品国产一级在线观看| 欧美精品人人做人人爱视频| 99久久人人爽亚洲精品美女| 99久久这里只有精品| 无码精品国产VA在线观看DVD| 日韩精品欧美| 精品国产爽爽AV| 国产精品手机在线观看你懂的 | 欧美精品第欧美第12页| 久久亚洲日韩精品一区二区三区| 女人高潮内射99精品| 国产精品极品| 青青草国产精品久久| 精品国精品国产| 国产精品一久久香蕉产线看| 成人国内精品久久久久一区| 国精品无码一区二区三区在线| 中文国产成人精品久久亚洲精品AⅤ无码精品 | 精品视频一区二区三区四区五区| 99精品国产一区二区| 四虎影永久在线观看精品| 国产精品久久久久久久| 91探花福利精品国产自产在线 | 无码人妻精品一区二| 四虎国产精品永久地址入口| 久久久久亚洲精品无码网址 | 国产乱子伦精品免费视频| 欧美日韩精品在线| 91精品国产麻豆国产自产在线| 欧美精品一区二区三区视频| 97精品国产自在现线免费观看| 国产精品黄页免费高清在线观看| 国产精品亚洲综合专区片高清久久久| 国产精品99久久久久久www| 国产成人精品免费视频大| 久久国产精品久久久|