<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] # JavaScript 的數據類型 數據類型決定了一個數據的特征,即限定了該數據必須按照一定的規則進行操作。 JavaScript 中一共有5中基本數據類型: 1. 字符串型 2. 數值型 3. 布爾型 4. null 型 5. undefined 型 ## 內建數據類型概要 在 ECMAScript 標準中,內建數據類型分為5種基本數據類型以及 Object 類型。 ## 字符串型 字符串字面量需要用雙引號(")或單引號(')括起來。 ```javascript var str1 = "abc"; var str2 = 'abc'; ``` ### 字符串的運算 由于 JavaScript 的字符串類型是不可變類型,所以字符串值本質上是不能改變的。 ```javascript var str1 = 'abc'; var str2 = 'def'; var str3 = str1 + str2; // 'abcdef' str1 += '123'; // 'abc123' ``` ### 字符串型的比較 JavaScript 有兩種等值運算,即 === 和 ==。 ```javascript var str1 = 'abc'; var str2 = str1; str1 === str2 // true 字符串內容相同 ``` 還能對字符串進行大小比較,基于 Unicode 字符的編碼值 ```javascript var str1 = 'abc'; var str2 = 'def'; str1 < str2 // true ``` ### 字符串類(String 類) 字符串型和 String 類之間支持隱式類型轉換。 ```javascript var str = '123'; str.length // 3; ``` 點運算符的含義是一般意義上的對類方法的調用。上面的代碼中,字符串值會先被隱式的轉換為字符串對象,然后再讀取字符串對象的 length 屬性。 ### 字符串對象 可以用 `new` 運算符,來顯式地生成一個字符串對象。 ```javascript var str = new String('123'); ``` 字符串值和字符串對象之間可以進行隱式類型。一般來說并不需要在意值和對象之間的區別,字符串對象的比較運算,判斷的是兩者是否引用了同一個對象,而非兩者的內容是否相同。 ```javascript var str1 = new String('123'); var str2 = new String('123'); str1 === str2 // false ``` ### 避免混用字符串值和字符串對象 在必要的時候,可以使用 `typeof` 運算來判別一個字符串是字符串值還是字符串對象。字符串對象的運算結果為 object ```javascript var str1 = new String('123'); typeof str1 // object ``` 應該避免顯式地生成字符串對象,積極使用隱式數據類型變換,將字符串值轉換為字符串對象。 ### 調用 String 函數 通過 `new` 運算符調用字符串容易引起混淆,僅通過調用 String 函數就可以生成字符串值。一般來說,使用 String 函數是為了進行顯式的數據類型轉換。 ```javascript var str = String(47); typeof str // string ``` ### 非破壞性的方法 字符串對象和字符串值一樣,是不可變的。不能改寫字符串的內容。所有要改變字符串內容的方法,都會生成一個新的字符串對象然后將其返回。 ## 數值型 數值的內部結構為64位的浮點小數。 ### 數值型的運算 對數值可以進行`+`(加法)、`-`(減法)、`*`(乘法)、`/`(除法)四則運算。通過`%`符號則可以進行求模運算(即計算除法運算后的余數) ### 有關浮點數的常見注意事項 ```javascript 0.1 + 0.2 //0.30000000000004 ``` ### 數值類(Number 類) 經過數據類型轉換之后,數值和數值對象也能被視為等價的。 可以通過 `new` 運算符來顯式地生成數值對象。如果沒有特殊的理由,不建議使用顯式的數值對象 ```javascript var num1 = new Number(1); var num2 = new Number(2); num1 === num2 // false typeof num1 // object ``` ### 調用 Number 函數 調用 Number 函數的話,將返回對應的數值。需要顯示地進行數據類型轉換的時候,可以使用 Number 函數。 ```javascript var num1 = Number('1'); typeof num1 // number ``` ### 邊界值與特殊數值 通過 Number 對象的屬性值來獲知64位浮點數所支持的最大正值和最小正值。 ```javascript Number.MAX_VALUE // 1.7976931348623157e+308 Number.MIN_VALUE // 5e-324 Number.POSITIVE_INFINITY // Infinity 正無窮大 Number.NEGATIVE_INFINITY // -Infinity 負無窮大 ``` ### NaN 對 NaN 進行任何運算,其結果都是 NaN。如果在計算過程中出現了一次 NaN,最終的結果就一定會是 NaN。 NaN 不但不與其他任何數值相等,就算是兩個 NaN 的等值判斷也為 false。 JavaScript 中預定義了一個全局函數 isNaN。來判斷一個對象是否為 NaN ```javascript isNaN({}) // true isNaN(1) // false ``` ## 布爾型 布爾型也被稱為邏輯值類型或真假值類型。布爾型只能夠取 true 和 false。 ### 布爾類(Boolean 類) 通過 Boolean 函數可以將任意值顯式地轉換為布爾值。 ```javascript var b = Boolean(true); typeof b // boolean ``` ## null 型 null 值的意義存在于對象引用之中。null 值最初的含義為“沒有引用任何對象”。null 型只能夠取 null 這一個值。null 值是一個字面量。對 null 進行 `typeof` 運算得到的結果是 “object”。要對 null 進行判斷,就必須通過和 null 值的等值判斷才能確定其類型。 ```javascript typeof null // object ``` null 型沒有對應的 Null 類。 ## undefined 型 undefined 型只能夠取 undefined 這一個值。對 undefined 值進行 `typeof` 運算,其結果為“undefined”。 ```javascript typeof undefined // undefined ``` 出現 undefined 的情況 - 為初始化的變量的值 - 不存在屬性的值 - 在沒有傳入實參而調用函數時,該函數內相應參數的值 - 沒有 return 語句或是 return 語句中不含表達式的函數的返回值 - 對 void 運算符求值的結果 ## Object 類型 除了基本類型之外,其它的所有類型都是 Object 類型。對 Object 類型進行 `typeof` 運算,得到的結果是 “object”。 對一個函數進行 `typeof`運算時,得到的結果為 “function”。 ## 數據類型轉換 JavaScript 注重的是靈活運用隱式數據類型轉換,以寫出簡潔的代碼。 ### 從字符串值轉換為數值 ```javascript Number('100'); parseInt('100', 10); // 第二個參數為轉換時所采用的基數,默認為10 parseInt('100x', 10); // NaN parseFloat('0.1'); // 0.1 ``` 在數值運算操作數的位置上書寫字符串值,該值就將被隱式地轉換為數值類型。 ```javascript '100' - 1 // 99 '100' - '1' // 99 '100' - '' // 100 // 如果操作數中含有字符串值,它就將變為字符串連接運算。這是操作數將被轉換為數值類型 '100' + 1 // 1001 1 + '100' // 1100 ``` ### 從數值轉換為字符串值 通常的做法是使用 String 函數,或是在對數值對象進行了隱式數據類型轉換之后,再對其調用 toString 方法。 ```javascript typeof String(100); // string typeof (100).toString(); // string 'foo' + 100 // foo100 100 + 'foo' // 100foo ``` ## 轉換為布爾型 除以下類型轉換后結果 false,其它都為 true。 - 數值0 - 數值 NaN - null 值 - undefined 值 - 空字符串值 也可使用 `!!` 進行隱式轉換 ```javascript !!1 // true !!0 // false ``` Object 類型再被轉換為布爾型之后結果必定為 true
                  <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>

                              哎呀哎呀视频在线观看