神奇的數組

01

JavaScript有很多數據類型,數組就是其中的一類。英文名叫Array。

例如:var names=["zhangsan" ,? "lisi",? "wangwu",? "zhaoliu"];

其標志就是一堆方括號【】。

提到數組,就要提到另一個數據類型:“對象(object)”。

例如:var names={? firstName:"zhangsan",? secondName:"lisi",? thirdName:"wangwu",? fourthName:"zhaoliu"? }

這兩個例子都是表達name的值。從數組的定義中可以得出,JavaScript中,數組其實是對象的一種特殊形式。

數組的索引實際上和碰巧是整數的對象屬性名差不多。 例子中,數組里的索引,和對象里屬性名,其實都是一回事。只不過數組的索引從“0”開始罷了。

也可以理解為,數組是經過優化排序的對象。因為排序的優化,所以用索引來遍歷整個數組,比訪問常規的對象屬性要方便的多。我想這也是數組的意義所在。

02

關于數組的神奇,首先讓我驚訝的是它的索引是從“0”開始。

為何不從“1”開始?開始詢問“度娘”。網上一大堆回答,從編程基礎知識,到計算機基礎科學,讓我陷入浩瀚的知識海洋之中,然后徹底懵逼。

只有一個答案,讓我看懂了。為何索引從“0”開始。因為這屬于“烏龜的屁股長痔瘡”,“爛龜腚(爛規定)”。

好吧,既然是規定,咱啥不說了,執行就是了。

不過,值得注意的是,數組的長度(length)是從1開始計數,有一個值,算一個值。不能從零計數。

03

另外還有一類數組,比較奇葩----稀疏數組。

例如: var array=[,? ,? ,? ];

這可不是一個空數組,他是一個稀疏數組,他也有值,

只不過值為:【undefined,undefined,undefined】。這個數組仍有長度(length),長度為3。

這也解釋了為何數組中有一個元素刪除了,可長度仍然不變。

關于數組知識,之前我接觸最多的知識就是遍歷數組,也就是“for循環”。經過一周的JavaScript數組基礎知識溫習,我感覺到數組的知識很多。光數組方法有近20種

什么是數組方法?我個人淺顯理解就是,通過運用一些函數,將數組進行排序、過濾、運算、簡化、搜索等操作。這些針對數組而內置的函數,就是數組的方法。說白了就是數組的函數。

從join()、reverse()、sort()、push()、pop()到forEach()、reduce()......

可謂眼花繚亂,這些方法中,有些看上去很相似,但其實有著本質區別。

比如:splice()方法,與slice()方法,這兩個方法擁有非常相似的名字,但是功能有著本質的區別。因為splice()方法,不僅會返回一個新的數組,還會修改最初調用的數組。

這么多數組方法,都是根據編程的需求來選擇。而這些方法,本質上來講,其實也是一個函數,一個操作數組的函數。只不過被內置了,我們看不到function字樣,看不見函數體{ }罷了。

04

數組雖然看上去就是兩個方括號,但是這里面的學問可謂另有乾坤。神奇的數組,需要們花時間去挖掘他,掌握它,直至熟練運用它。

JavaScript語言學習,我在進行中,加油......

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 第5章 引用類型(返回首頁) 本章內容 使用對象 創建并操作數組 理解基本的JavaScript類型 使用基本類型...
    大學一百閱讀 3,270評論 0 4
  • 數組是值的有序集合。每個值叫做一個元素,而每個元素在數組中有一個位置,以數字表示,稱為索引。 JavaScript...
    劼哥stone閱讀 1,148評論 6 20
  • 第三章 類型、值和變量 1、存取字符串、數字或布爾值的屬性時創建的臨時對象稱做包裝對象,它只是偶爾用來區分字符串值...
    坤少卡卡閱讀 656評論 0 1
  • FreeCodeCamp - Basic JavaScript 寫在前面: 我曾經在進谷前刷過這一套題,不過當時只...
    付林恒閱讀 16,526評論 5 28
  • 老板:你來大城市干嘛呀?奇奇:來完成自己的任務。老板:那你的任務是什么呢?奇奇:我也不知道,但是每個人來到這個世界...
    金小爻閱讀 989評論 4 7