<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 一、概述 布爾運算符用于將表達式轉為布爾值,一共包含四個運算符。 * 取反運算符:`!` * 且運算符:`&&` * 或運算符:`||` * 三元運算符:`?:` ## 二、取反運算符(!) 取反運算符是一個感嘆號,用于將布爾值變為相反值,即`true`變成`false`,`false`變成`true`。 ~~~ !true // false !false // true ~~~ 對于非布爾值,取反運算符會將其轉為布爾值。以下六個值取反后為`true`,其他值都為`false`。 * `undefined` * `null` * `false` * `0` * `NaN` * 空字符串(`''`) ~~~ !undefined // true !null // true !0 // true !NaN // true !"" // true !54 // false !'hello' // false ![] // false !{} // false ~~~ ## 三、且運算符(&&) 且運算符(`&&`)往往用于多個表達式的求值。 它的運算規則是:如果第一個運算子的布爾值為`true`,則返回第二個運算子的值(注意是值,不是布爾值);如果第一個運算子的布爾值為`false`,則直接返回第一個運算子的值,且不再對第二個運算子求值。 ~~~ 't' && '' // "" 't' && 'f' // "f" 't' && (1 + 2) // 3 '' && 'f' // "" '' && '' // "" var x = 1; (1 - 1) && ( x += 1) // 0 x // 1 ~~~ 上面代碼的最后一個例子,由于且運算符的第一個運算子的布爾值為`false`,則直接返回它的值`0`,而不再對第二個運算子求值,所以變量`x`的值沒變。這種跳過第二個運算子的機制,被稱為“短路”。 且運算符可以多個連用,這時返回第一個布爾值為`false`的表達式的值。如果所有表達式的布爾值都為`true`,則返回最后一個表達式的值。 ~~~ true && 'foo' && '' && 4 && 'foo' && true // '' 1 && 2 && 3 // 3 ~~~ 上面代碼中,例一里面,第一個布爾值為`false`的表達式為第三個表達式,所以得到一個空字符串。例二里面,所有表達式的布爾值都是`true`,所有返回最后一個表達式的值`3`。 ## 四、或運算符(||) 或運算符(`||`)也用于多個表達式的求值。它的運算規則是:如果第一個運算子的布爾值為`true`,則返回第一個運算子的值,且不再對第二個運算子求值;如果第一個運算子的布爾值為`false`,則返回第二個運算子的值。 ~~~ 't' || '' // "t" 't' || 'f' // "t" '' || 'f' // "f" '' || '' // "" ~~~ 短路規則對這個運算符也適用。 ~~~ var x = 1; true || (x = 2) // true x // 1 ~~~ 上面代碼中,或運算符的第一個運算子為`true`,所以直接返回`true`,不再運行第二個運算子。所以,`x`的值沒有改變。這種只通過第一個表達式的值,控制是否運行第二個表達式的機制,就稱為“短路”(short-cut)。 或運算符可以多個連用,這時返回第一個布爾值為`true`的表達式的值。如果所有表達式都為`false`,則返回最后一個表達式的值。 ~~~ false || 0 || '' || 4 || 'foo' || true // 4 false || 0 || '' // '' ~~~ ## 五、三元條件運算符(? :) 三元條件運算符由問號(?)和冒號(:)組成,分隔三個表達式。它是 JavaScript 語言唯一一個需要三個運算子的運算符。如果第一個表達式的布爾值為`true`,則返回第二個表達式的值,否則返回第三個表達式的值。 ~~~ 't' ? 'hello' : 'world' // "hello" 0 ? 'hello' : 'world' // "world" ~~~ 通常來說,三元條件表達式與`if...else`語句具有同樣表達效果,前者可以表達的,后者也能表達。但是兩者具有一個重大差別,`if...else`是語句,沒有返回值;三元條件表達式是表達式,具有返回值。所以,在需要返回值的場合,只能使用三元條件表達式,而不能使用`if..else`。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看