首頁  >  問答  >  主體

javascript - 這是什麼陣列?

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

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

#
PHP中文网PHP中文网2667 天前769

全部回覆(8)我來回復

  • 巴扎黑

    巴扎黑2017-06-30 10:01:14

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

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

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

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

    它說回傳值是一個陣列。

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

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

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

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

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

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

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

    回覆
    0
  • 怪我咯

    怪我咯2017-06-30 10:01:14

    雷雷

    回覆
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-06-30 10:01:14

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

    回覆
    0
  • 大家讲道理

    大家讲道理2017-06-30 10:01:14

    var a = [];
    a[0] = 'tets'
    a[1] = 'fasfasf'
    a.index = '对象属性'

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

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

    回覆
    0
  • 怪我咯

    怪我咯2017-06-30 10:01:14

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

    回覆
    0
  • 淡淡烟草味

    淡淡烟草味2017-06-30 10:01:14

    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中去尋找方法。
    所以理論上來說,數組類型也可以認為是物件類型的一種。

    回覆
    0
  • 天蓬老师

    天蓬老师2017-06-30 10:01:14

    雷雷

    回覆
    0
  • 迷茫

    迷茫2017-06-30 10:01:14

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

    第二個問題:文法錯誤

    [] 定义数组
    

    回覆
    0
  • 取消回覆