<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # ECMAScript Boolean 運算符 **Boolean 運算符非常重要,它使得程序語言得以正常運行。** **Boolean 運算符有三種:NOT、AND 和 OR。** ## ToBoolean 操作 在學習各種邏輯運算符之前,讓我們先了解一下 ECMAScript-262 v5 規范中描述的 ToBoolean 操作。 抽象操作 ToBoolean 將其參數按照下表中的規則轉換為邏輯值: | 參數類型 | 結果 | | --- | --- | | Undefined | false | | Null | false | | Boolean | 結果等于輸入的參數(不轉換) | | Number | 如果參數為 +0, -0 或 NaN,則結果為 false;否則為 true。 | | String | 如果參數為空字符串,則結果為 false;否則為 true。 | | Object | true | ## 邏輯 NOT 運算符 在 ECMAScript 中,邏輯 NOT 運算符與 C 和 Java 中的邏輯 NOT 運算符相同,都由感嘆號(!)表示。 與邏輯 OR 和邏輯 AND 運算符不同的是,**邏輯 NOT 運算符返回的一定是 Boolean 值**。 邏輯 NOT 運算符的行為如下: * 如果運算數是對象,返回 false * 如果運算數是數字 0,返回 true * 如果運算數是 0 以外的任何數字,返回 false * 如果運算數是 null,返回 true * 如果運算數是 NaN,返回 true * 如果運算數是 undefined,發生錯誤 通常,該運算符用于控制循環: ``` var bFound = false; var i = 0; `while (!bFound)` { if (aValue[i] == vSearchValues) { bFound = true; } else { i++; } } ``` 在這個例子中,Boolean 變量(bFound)用于記錄檢索是否成功。找到問題中的數據項時,bFound 將被設置為 true,!bFound 將等于 false,意味著運行將跳出 while 循環。 判斷 ECMAScript 變量的 Boolean 值時,也可以使用邏輯 NOT 運算符。這樣做需要在一行代碼中使用兩個 NOT 運算符。無論運算數是什么類型,第一個 NOT 運算符返回 Boolean 值。第二個 NOT 將對該 Boolean 值求負,從而給出變量真正的 Boolean 值。 ``` var bFalse = false; var sRed = "red"; var iZero = 0; var iThreeFourFive = 345; var oObject = new Object; document.write("bFalse 的邏輯值是 " + (!!bFalse)); document.write("sRed 的邏輯值是 " + (!!sRed)); document.write("iZero 的邏輯值是 " + (!!iZero)); document.write("iThreeFourFive 的邏輯值是 " + (!!iThreeFourFive)); document.write("oObject 的邏輯值是 " + (!!oObject)); ``` 結果: ``` bFalse 的邏輯值是 false sRed 的邏輯值是 true iZero 的邏輯值是 false iThreeFourFive 的邏輯值是 true oObject 的邏輯值是 true ``` ## 邏輯 AND 運算符 在 ECMAScript 中,邏輯 AND 運算符用雙和號(&&)表示: 例如: ``` var bTrue = true; var bFalse = false; var bResult = bTrue && bFalse; ``` 下面的真值表描述了邏輯 AND 運算符的行為: | 運算數 1 | 運算數 2 | 結果 | | --- | --- | --- | | true | true | true | | true | false | false | | false | true | false | | false | false | false | **邏輯 AND 運算的運算數可以是任何類型的,不止是 Boolean 值。** 如果某個運算數不是原始的 Boolean 型值,邏輯 AND 運算并不一定返回 Boolean 值: * 如果一個運算數是對象,另一個是 Boolean 值,返回該對象。 * 如果兩個運算數都是對象,返回第二個對象。 * 如果某個運算數是 null,返回 null。 * 如果某個運算數是 NaN,返回 NaN。 * 如果某個運算數是 undefined,發生錯誤。 與 Java 中的邏輯 AND 運算相似,ECMAScript 中的邏輯 AND 運算也是簡便運算,即如果第一個運算數決定了結果,就不再計算第二個運算數。對于邏輯 AND 運算來說,如果第一個運算數是 false,那么無論第二個運算數的值是什么,結果都不可能等于 true。 考慮下面的例子: ``` var bTrue = true; var bResult = (bTrue && bUnknown); //發生錯誤 alert(bResult); //這一行不會執行 ``` 這段代碼在進行邏輯 AND 運算時將引發錯誤,因為變量 bUnknown 是未定義的。變量 bTrue 的值為 true,因為邏輯 AND 運算將繼續計算變量 bUnknown。這樣做就會引發錯誤,因為 bUnknown 的值是 undefined,不能用于邏輯 AND 運算。 如果修改這個例子,把第一個數設為 false,那么就不會發生錯誤: ``` var bFalse = false; var bResult = (bFalse && bUnknown); alert(bResult); //輸出 "false" ``` 在這段代碼中,腳本將輸出邏輯 AND 運算返回的值,即字符串 "false"。即使變量 bUnknown 的值為 undefined,它也不會被計算,因為第一個運算數的值是 false。 提示:在使用邏輯 AND 運算符時,必須記住它的這種簡便計算特性。 ## 邏輯 OR 運算符 ECMAScript 中的邏輯 OR 運算符與 Java 中的相同,都由雙豎線(||)表示: ``` var bTrue = true; var bFalse = false; var bResult = bTrue || bFalse; ``` 下面的真值表描述了邏輯 OR 運算符的行為: | 運算數 1 | 運算數 2 | 結果 | | --- | --- | --- | | true | true | true | | true | false | true | | false | true | true | | false | false | false | 與邏輯 AND 運算符相似,如果某個運算數不是 Boolean 值,邏輯 OR 運算并不一定返回 Boolean 值: * 如果一個運算數是對象,并且該對象左邊的運算數值均為 false,則返回該對象。 * 如果兩個運算數都是對象,返回第一個對象。 * 如果最后一個運算數是 null,并且其他運算數值均為 false,則返回 null。 * 如果最后一個運算數是 NaN,并且其他運算數值均為 false,則返回 NaN。 * 如果某個運算數是 undefined,發生錯誤。 與邏輯 AND 運算符一樣,邏輯 OR 運算也是簡便運算。對于邏輯 OR 運算符來說,如果第一個運算數值為 true,就不再計算第二個運算數。 例如: ``` var bTrue = true; var bResult = (bTrue || bUnknown); alert(bResult); //輸出 "true" ``` 與前面的例子相同,變量 bUnknown 是未定義的。不過,由于變量 bTrue 的值為 true,bUnknown 不會被計算,因此輸出的是 "true"。 如果把 bTrue 改為 false,將發生錯誤: ``` var bFalse = false; var bResult = (bFalse || bUnknown); //發生錯誤 alert(bResult); //不會執行這一行 ```
                  <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>

                              哎呀哎呀视频在线观看