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

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 數據類型概述 ## 簡介 JavaScript 語言的每一個值,都屬于某一種數據類型。JavaScript 的數據類型,共有六種。(ES6 又新增了第七種 Symbol 類型的值,本教程不涉及。) - 數值(number):整數和小數(比如`1`和`3.14`)。 - 字符串(string):文本(比如`Hello World`)。 - 布爾值(boolean):表示真偽的兩個特殊值,即`true`(真)和`false`(假)。 - `undefined`:表示“未定義”或不存在,即由于目前沒有定義,所以此處暫時沒有任何值。 - `null`:表示空值,即此處的值為空。 - 對象(object):各種值組成的集合。 通常,數值、字符串、布爾值這三種類型,合稱為原始類型(primitive type)的值,即它們是最基本的數據類型,不能再細分了。對象則稱為合成類型(complex type)的值,因為一個對象往往是多個原始類型的值的合成,可以看作是一個存放各種值的容器。至于`undefined`和`null`,一般將它們看成兩個特殊值。 對象是最復雜的數據類型,又可以分成三個子類型。 - 狹義的對象(object) - 數組(array) - 函數(function) 狹義的對象和數組是兩種不同的數據組合方式,除非特別聲明,本教程的“對象”都特指狹義的對象。函數其實是處理數據的方法,JavaScript 把它當成一種數據類型,可以賦值給變量,這為編程帶來了很大的靈活性,也為 JavaScript 的“函數式編程”奠定了基礎。 ## typeof 運算符 JavaScript 有三種方法,可以確定一個值到底是什么類型。 - `typeof`運算符 - `instanceof`運算符 - `Object.prototype.toString`方法 `instanceof`運算符和`Object.prototype.toString`方法,將在后文介紹。這里介紹`typeof`運算符。 `typeof`運算符可以返回一個值的數據類型。 數值、字符串、布爾值分別返回`number`、`string`、`boolean`。 ```javascript typeof 123 // "number" typeof '123' // "string" typeof false // "boolean" ``` 函數返回`function`。 ```javascript function f() {} typeof f // "function" ``` `undefined`返回`undefined`。 ```javascript typeof undefined // "undefined" ``` 利用這一點,`typeof`可以用來檢查一個沒有聲明的變量,而不報錯。 ```javascript v // ReferenceError: v is not defined typeof v // "undefined" ``` 上面代碼中,變量`v`沒有用`var`命令聲明,直接使用就會報錯。但是,放在`typeof`后面,就不報錯了,而是返回`undefined`。 實際編程中,這個特點通常用在判斷語句。 ```javascript // 錯誤的寫法 if (v) { // ... } // ReferenceError: v is not defined // 正確的寫法 if (typeof v === "undefined") { // ... } ``` 對象返回`object`。 ```javascript typeof window // "object" typeof {} // "object" typeof [] // "object" ``` 上面代碼中,空數組(`[]`)的類型也是`object`,這表示在 JavaScript 內部,數組本質上只是一種特殊的對象。這里順便提一下,`instanceof`運算符可以區分數組和對象。`instanceof`運算符的詳細解釋,請見《面向對象編程》一章。 ```javascript var o = {}; var a = []; o instanceof Array // false a instanceof Array // true ``` `null`返回`object`。 ```javascript typeof null // "object" ``` `null`的類型是`object`,這是由于歷史原因造成的。1995年的 JavaScript 語言第一版,只設計了五種數據類型(對象、整數、浮點數、字符串和布爾值),沒考慮`null`,只把它當作`object`的一種特殊值。后來`null`獨立出來,作為一種單獨的數據類型,為了兼容以前的代碼,`typeof null`返回`object`就沒法改變了。 ## 參考鏈接 - Axel Rauschmayer, [Improving the JavaScript typeof operator](http://www.2ality.com/2011/11/improving-typeof.html)
                  <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>

                              哎呀哎呀视频在线观看