[JavaScript]JavaScript中的Array

來源:互聯網
上載者:User

標籤:var   ==   developer   編號   mozilla   src   過程   用法   常用   

JavaScript中的Array

今天較全面地學習到了JS中的Array,也就是數組。寫博文一篇來總結一下學習和使用過程中關於Array中的一些誤區和常用API,加深一下印象。

關於Array最全面的API在此,MDN

阮一峰阮老師的Array教程

Array的定義

來自MDN的定義:

JavaScript的Array對象是用於構造數組的全域對象,數組是類似於列表的高階對象

來自阮一峰老師教程的定義:

數組(array)是按次序排列的一組值。每個值的位置都有編號(從0開始),整個數組用方括弧表示。

首先,數組是 對象,其次,他 按次序排列

  • 數組與對象的區別

那麼數組和對象的區別在哪裡呢?

我們先來看一下這段代碼:

我們分別聲明了一個數組和對象,我們可以看到:arr === obj 的結果為false,而且他們對應的建構函式也不同。

數組arr的建構函式是Array,而obj對應的建構函式Object,這就是他們最本質的區別。

因此,我們也可以說,數組是一個擁有特殊原型鏈的對象。

Array的聲明
  • 直接聲明
var arr = [1,2,3]arr //[1,2,3]

這樣我們就建立了一個length為3的數組。

  • 建構函式聲明
var arr = new Array(1,2,3)arr //[1,2,3]

值得注意的是,當我們使用建構函式聲明一個數組時,應該注意,不同的參數,會導致它的行為不一致。

var arr = new Array(3)arr //[empty × 3]var arr = new Array(3,3)arr //[3, 3]

因此,我們在聲明一個數組時,不建議使用建構函式產生新數組,直接使用數組字面量是更好的做法。

偽數組

如果一個對象的所有鍵名都是正整數或零,並且有length屬性,那麼這個對象就很像數組,文法上稱為“類似數組的對象”

比如前文提到的:

var arr = {    ‘0‘:1,    ‘2‘:2,    ‘3‘:3}
  • 如何判斷數組是不是偽數組

    • 很簡單,這要這個數組的建構函式的原型是Array,他就是真數組;如果他的建構函式的原型是Object,他就是偽數組。
    // 真數組arr.__proto__ === Array.prototype   //true// 偽數組arr.__proto__ === Object.prototype  //true
    • Array.isArray()
      Array.isArray方法返回一個布爾值,表示參數是否為數組。它可以彌補typeof運算子的不足。
    var arr = [1, 2, 3];typeof arr // "object"Array.isArray(arr) // true
Array常用API

阮一峰老師的教程中有很詳細的用法講解,全盤照抄沒有意思,重要的是理解,如果實在不記得直接去查詢就可以了。

  • push()
  • pop()
  • shift()
  • unshift()
  • forEach()
  • sort()
  • join()
  • concat()
  • map()
  • filter()
  • reduce

[JavaScript]JavaScript中的Array

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.