javascript - 這是什麼陣列?
PHP中文网
PHP中文网 2017-06-30 09:59:14
0
8
764

在學習正規表示式的時候,發現exec方法回傳了這樣一個數組,請問這是什麼數組?

#我在瀏覽器控制台輸入了這個數組,發現報錯了

#
PHP中文网
PHP中文网

认证高级PHP讲师

全部回覆(8)
巴扎黑

我typeof 看它,說是一個物件,不過typeof檢查資料也會告訴你是物件。

我又用 Array.isArray 檢查,回傳true。

所以我看了一下 MDN 上面關於這個函數的解釋:

https://developer.mozilla.org...

它說回傳值是一個陣列。

我看了一下 ECMA 5.1 上面數組相關描述也沒找到

http://ecma-international.org...

所以我也在這裡等大神來解答 =。 =

----------------- 強行解釋的分割線 -----------------

數組的實例也是一個物件,所以確實可以給它添加屬性並賦值。

但是要注意,不是複合類型的變數,是沒有辦法為它們的實例添加屬性並賦值的。因為做了也沒有用。

我記混了,所以我以為沒有辦法為數值的實例加上屬性賦值。 。 。 。 。

刘奇

雷雷

过去多啦不再A梦

正則的exec回傳值雖然說是數組, 但是有其他屬性, 具體可以看​​文檔文檔, 多翻翻犀牛書或高程吧

大家讲道理
var a = [];
a[0] = 'tets'
a[1] = 'fasfasf'
a.index = '对象属性'

輸出 a 得到,在JavaScript裡面,陣列也是一個物件

["tets", "fasfasf", index: "哈哈哈"]

刘奇

我的理解是數組的成員和數組物件上的成員。
]

淡淡烟草味
var a={0:"Box"};
a.index=10;
a.input="This is a Box! That is a Box!";
var b=["Box"];
b.index=10;
b.input="This is a Box! That is a Box!"
console.log(a,b);

其實這裡最讓人迷惑的是,["Box"].index=10為什麼可以設定成功?
先看印刷結果:

為了更清晰地說明,我們將其展開,觀察其原型鏈。
物件a的原型鏈:

數組b的原型鏈:

由上圖可以看出,陣列從原型鏈上繼承了Obejct物件類型的方法。
當["box"]在Array(0)中找不到對應方法時,會沿著原型鏈向下,到Object中去尋找方法。
所以理論上來說,數組類型也可以認為是物件類型的一種。

Peter_Zhu

雷雷

迷茫

第一個問題:就是普通的陣列

第二個問題:文法錯誤

[] 定义数组

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!