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

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## 數組 **1.數組簡介** 數組是值的有序集合。每個值叫做一個元素,而每個元素在數組中有一個位置,以數字表示(從0開始),稱為索引,整個數組用方括號表示。 ``` var arr = [1,2,3]; ``` 除了在定義時賦值,數組也可以先定義后賦值。 ``` var arr = []; arr[0] =1; ``` 數組元素可以是任意類型。 ``` var arr = [1,'a',{name:'a'},function(){}]; ``` 上面數組arr的4個元素分別是數字,字符串,對象,函數。 數組屬于一種特殊的對象。 ``` typeof [1] // "object" ``` JavaScript語言規定,對象的鍵名一律為字符串,所以,數組的鍵名其實也是字符串。之所以可以用數值讀取,是因為非字符串的鍵名會被轉為字符串。 **2、創建數組** **2.1 創建數組** **(1)數組直接量** 使用數組直接量是創建數組最簡單的方法,在方括號中將數組元素用逗號隔開即可。 ``` var arr = [1,2,3]; ``` 注:如果省略數組直接量的某個值,省略的元素將被賦予undefined值。 **(2)new Array()** 我們也可以調用構造函數Array()創建數組 ``` var a=new Array(); var a2=new Array(10); var a3=new Array(1,2,3,4); ``` 上面的例子,a是一個空數組,a2是一個包含10個數組項但為undefined的數組,a3是包含4個數組項,并且分別有值。 **2.2 數組長度** 每個數組都有一個**length**屬性,返回數組的元素數量 ``` [1,2,3].length //3 ``` JavaScript使用一個32位整數,保存數組的元素個數。這意味著,數組成員最多只有4294967295個(232 - 1)個,也就是說length屬性的最大值就是4294967295。 只要是數組,就一定有length屬性。該屬性是一個動態的值,等于鍵名中的最大整數加上1. length屬性是可寫的。如果人為設置一個小于當前成員個數的值,該數組的成員會自動減少到length設置的值。 ``` var arr = [1,2,3] arr.length //3 arr.length = 2; arr //[1,2] ``` 將數組清空的一個有效方法,就是將length屬性設為0。 ``` var arr = [1,2,3]; arr.length = 0; arr //[] ``` 如果人為設置length大于當前元素個數,則數組的成員數量會增加到這個值,新增的位置都是空位。 ``` var arr = [1]; arr.length=3; arr[1] //undefined ``` 在ECMAScript 5中,可以用Object.defineProperty() 讓數組的length屬性變成只讀。 **2.3 空位** 當數組的某個位置是空元素,即兩個逗號之間沒有任何值,我們稱該數組存在空位(hole)。 ``` var arr = [1,,2] arr.length //3 ``` 但是,如果最后一個元素后面有逗號,并不會產生空位。數組直接量的語法允許有可選的結尾的逗號,故[,,]只有兩個元素而非三個。 ``` var arr = [,,]; arr.length //2 ``` **2.4 數組元素的讀和寫** 使用([])操作符來訪問數組中的一個元素。 ``` var arr = [1,2] arr[0] //1 arr[1]=3; // [1,3] ``` **2.5 數組元素的添加和刪除** 可以使用push()方法在數組末尾添加一個或多個元素。 ``` var arr = [1,2] arr.push(3) // [1,2,3] arr.push('a','b') //[1,2,3,'a','b'] // shift()是刪除數組的一個元素。 arr.shift() // [2,3,'a','b'] ``` **2.6 稀疏數組** 稀疏數組是指包含從0開始的不連續索引的數組。通常,數組的length屬性值代表數組中元素的個數,但如果是稀疏數組,length屬性值大于元素的個數。 **2.7 多維數組** JavaScript不支持真正的多維數組,但可以用數組的數組來近似。也可以說,數組里放數組。 ``` var arr = [[1],[2,3]]; arr[0][0] // 1 arr[1][1] //3 ``` **2.8 遍歷數組** 我們可以使用for循環、while循環、for..in或者forEach()方法來遍歷數組 ``` 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++; } //for..in for (var i in a) { console.log(a[i]); } //forEach a.forEach(function(v){ console.log(v); }) ``` **2.9 類數組對象** 在JavaScript中,有些對象被稱為“類數組對象”。意思是,它們看上去很像數組,可以使用length屬性,但是它們并不是數組,無法使用一些數組的方法。 ``` var o = { 0: 'a', 1: 'b', length:2 } o[0] // "a" o[1] // "b" o.length // 2 o.push('d') // TypeError: o.push is not a function ``` 上面代碼中,變量o是一個對象,雖然使用的時候看上去跟數組很像,但是無法使用數組的方法。這就是類數組對象。 `類數組對象`有一個特征,就是具有length屬性。換句話說,只要有length屬性,就可以認為這個對象類似于數組。但是,對象的length屬性不是動態值,不會隨著成員的變化而變化。 由于類數組對象沒有繼承自Array.prototype,那就不能在它們上面直接調用數組方法。不過我們可以間接的使用Function.call方法調用。 ``` var o = { 0: 'a', 1: 'b', length:2 }; Array.prototype.slice.call(o) // ["a","b"] ``` 典型的類似數組的對象是函數的arguments對象,以及大多數DOM元素集,還有字符串。
                  <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>

                              哎呀哎呀视频在线观看