<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之旅 廣告
                ## 一、定義 數組(array)是按次序排列的一組值。每個值的位置都有編號(從0開始),整個數組用方括號表示。 ~~~ var arr = ['a', 'b', 'c']; ~~~ 上面代碼中的`a`、`b`、`c`就構成一個數組,兩端的方括號是數組的標志。`a`是0號位置,`b`是1號位置,`c`是2號位置。 除了在定義時賦值,數組也可以先定義后賦值。 ~~~ var arr = []; arr[0] = 'a'; arr[1] = 'b'; arr[2] = 'c'; ~~~ * 任何類型的數據,都可以放入數組。 ~~~ var arr = [ {a: 1}, [1, 2, 3], function() {return true;} ]; arr[0] // Object {a: 1} arr[1] // [1, 2, 3] arr[2] // function (){return true;} ~~~ * 如果數組的元素還是數組,就形成了多維數組。 ~~~ var a = [[1, 2], [3, 4]]; a[0][1] // 2 a[1][1] // 4 ~~~ ## 二、數組的本質 本質上,數組屬于一種特殊的對象。`typeof`運算符會返回數組的類型是`object`。 ~~~ typeof [1, 2, 3] // "object" ~~~ 上面代碼表明,`typeof`運算符認為數組的類型就是對象。 數組的特殊性體現在,它的鍵名是按次序排列的一組整數(0,1,2...)。 ~~~ var arr = ['a', 'b', 'c']; Object.keys(arr); // ["0", "1", "2"] ~~~ 上面代碼中,`Object.keys`方法返回數組的所有鍵名。可以看到數組的鍵名就是整數0、1、2。 ## 三、length 屬性 數組的`length`屬性,返回數組的成員數量。 ~~~ ['a', 'b', 'c'].length // 3 ~~~ JavaScript 使用一個32位整數,保存數組的元素個數。這意味著,數組成員最多只有 4294967295 個(2^32- 1)個,也就是說`length`屬性的最大值就是 4294967295。 只要是數組,就一定有`length`屬性。該屬性是一個動態的值,等于鍵名中的最大整數加上`1`。 ~~~ var arr = ['a', 'b']; arr.length // 2 arr[2] = 'c'; arr.length // 3 arr[9] = 'd'; arr.length // 10 arr[1000] = 'e'; arr.length // 1001 ~~~ `length`屬性是可寫的。如果人為設置一個小于當前成員個數的值,該數組的成員會自動減少到`length`設置的值。 ~~~ var arr = [ 'a', 'b', 'c' ]; arr.length // 3 arr.length = 2; arr // ["a", "b"] ~~~ 如果人為設置`length`為不合法的值,JavaScript 會報錯。 ~~~ // 設置負值 [].length = -1 // RangeError: Invalid array length // 數組元素個數大于等于2的32次方 [].length = Math.pow(2, 32) // RangeError: Invalid array length // 設置字符串 [].length = 'abc' // RangeError: Invalid array length ~~~ ## 四、in 運算符 檢查某個鍵名是否存在的運算符`in`,適用于對象,也適用于數組。 ~~~ var arr = [ 'a', 'b', 'c' ]; 2 in arr // true '2' in arr // true 4 in arr // false ~~~ 上面代碼表明,數組存在鍵名為`2`的鍵。由于鍵名都是字符串,所以數值`2`會自動轉成字符串。 注意,如果數組的某個位置是空位,`in`運算符返回`false`。 ~~~ var arr = []; arr[100] = 'a'; 100 in arr // true 1 in arr // false ~~~ ## 五、for…in 循環和數組的遍歷 `for...in`循環不僅可以遍歷對象,也可以遍歷數組,畢竟數組只是一種特殊對象。 ~~~ var a = [1, 2, 3]; for (var i in a) { console.log(a[i]); } // 1 // 2 // 3 ~~~ 但是,`for...in`不僅會遍歷數組所有的數字鍵,還會遍歷非數字鍵。 ~~~ var a = [1, 2, 3]; a.foo = true; for (var key in a) { console.log(key); } // 0 // 1 // 2 // foo ~~~ 數組的遍歷可以考慮使用`for`循環或`while`循環。 ~~~ var a = [1, 2, 3]; // for循環 for(var i = 0; i < a.length; i++) { console.log(a[i]); } // while循環 var i = 0; while (i < a.length) { console.log(a[i]); i++; } var l = a.length; while (l--) { console.log(a[l]); } ~~~
                  <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>

                              哎呀哎呀视频在线观看