<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國際加速解決方案。 廣告
                [TOC] # **Boolean:布爾類型** &emsp;&emsp;Boolean 類型只有兩個字面值:true 和 false 。 在 JavaScript 中,所有類型的值都可以轉化為與 Boolean 等價的值 。轉化規則如下: * ?所有對象都被當作 true * ?空字符串被當作 false * ?null 和 undefined 被當作 false * ?數字 0 和 NaN 被當作 false? ``` Boolean([]);//true Boolean({});//true Boolean(undefined);//false Boolean(null);//false Boolean(''); //false Boolean(0); //false Boolean(NaN);//false ``` 除 Boolean() 方法可以返回布爾值外,以下 4 種類型的操作,也會返回布爾值。 <br> ## ?【1】**關系操作符:>,>=,<,<=** &emsp;&emsp;當關系操作符的操作數使用了非數值時,要進行數據轉換或完成某些奇怪的操作。 1. 如果兩個操作數都是數值,則執行數值比較。 2. 如果兩個操作數都是字符串,則逐個比較兩者對應的字符編碼(charCode),直到分出大小為止 。 3. 如果操作數是其他基本類型,則調用Number() 將其轉化為數值,然后進行比較。 4. NaN 與任何值比較,均返回 false 。 5. 如果操作數是對象,則調用對象的 valueOf 方法(如果沒有 valueOf ,就調用 toString 方法),最后用得到的結果,根據前面的規則執行比較。? ``` 'a' > 'b';// false, 即 'a'.charCodeAt(0) &gt; 'b'.charCodeAt(0)\ 2 > '1'; // true, 即 Number('1') = 1 true>; 0;//true, 即 Number(true) = 1 undefined > 0;//false, Number(undefined) = NaN null< 0;//false, Number(null) = NaN newDate > 100;//true , 即 new Date().valueOf() ``` <br> ## 【2】**相等操作符:?**\==,!=,===,!==** &emsp;&emsp;\== 和 != 操作符都會先轉換操作數,然后再比較它們的相等性。在轉換不同的數據類型時,需要遵循下列基本規則: * 如果有一個操作數是布爾值,則在比較相等性之前,先調用 Number() 將其轉換為數值; * 如果一個操作數是字符串,另一個操作數是數值,在比較相等性之前,先調用 Number() 將字符串轉換為數值; * 如果一個操作數是對象,另一個操作數不是,則調用對象的 valueOf() 方法,用得到的基本類型值按照前面的規則進行比較; * null 和 undefined 是相等的。在比較相等性之前,不能將 null 和 undefined 轉換成其他任何值。 * 如果有一個操作數是 NaN,則相等操作符返回 false,而不相等操作符返回 true; * 如果兩個操作數都是對象,則比較它們的指針地址。如果都指向同一個對象,則相等操作符返回 true;否則,返回 false。 \=== 和 !== 操作符最大的特點是,在比較之前不轉換操作數 。它們的操作規則如下: * \===: 類型相同,并且值相等,才返回 true ,否則返回 false 。 * !==?: 類型不同,或者值不相等,就返回?true,否則返回 false 。 ``` null === undefined;//false, 類型不同,直接返回 false [] === [];//false ,類型相同,值不相同,指針地址不同 a=[],b=a,a===b;//true, 類型相同,值也相等 1 !=='1' ;// true , 值相等,但類型不同 [] !== [] ; // true, 類型相同,但值不相等 ``` <br> ## ?【3】**布爾操作符:!** &emsp;&emsp;布爾操作符屬于一元操作符,即只有一個分項。其求值過程如下: * 對分項求值,得到一個任意類型值; * 使用 Boolean() 把該值轉換為布爾值 true 或 false; * 對布爾值取反,即 true 變 false,false 變 true ``` !(2+3) ;// false !(function(){});//false !([] null '');//true ``` 利用 ! 的取反的特點,使用 !! 可以很方便的將一個任意類型值轉換為布爾值: ``` console.log(!!0);//false console.log(!!'');//false console.log(!!(2+3));//true console.log(!!([] null ''));//false ``` 需要注意的是: >[success] 邏輯與 “&&” 和 邏輯或 “||” 返回的不一定是布爾值,而是包含布爾值在內的任意類型值。? 如下所示: ``` [] 1;//1 null undefined;//null [] || 1;//[] null || 1;//1 ``` &emsp;&emsp;邏輯操作符屬于短路操作符 。在進行計算之前,會先通過 Boolean() 方法將兩邊的分項轉換為布爾值,然后分別遵循下列規則進行計算: * 邏輯與:從左到右檢測每一個分項,返回第一個布爾值為 false 的分項,并停止檢測 。如果沒有檢測到 false 項,則返回最后一個分項 。 * 邏輯或:從左到右檢測每一個分項,返回第一個布爾值為 true 的分項,并停止檢測 。如果沒有檢測到 true 項,則返回最后一個分項 。 ``` [] &amp;&amp; {} &amp;&amp;&nbsp;null&nbsp;&amp;&amp; 1;//null [] ; {} ; !null 1 ;//1 null || undefined || 1 || 0;//1 undefined || 0 || function(){};//function(){} ``` <br> ## 【4】**條件語句:if,while,?** &emsp;&emsp;條件語句通過計算表達式返回一個布爾值,然后再根據布爾值的真假,來執行對應的代碼。其計算過程如下: * 對表達式求值,得到一個任意類型值 * 使用 Boolean() 將得到的值轉換為布爾值 true 或 false ``` if(arr.length) { } obj obj.name ?'obj.name' :'' while(arr.length){ }
                  <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>

                              哎呀哎呀视频在线观看