[英]Name Indexes in Javascript - Array / Object?
我了解到,當索引名用於在Javascript中推送值時,它們實際上就像對象一樣工作。 但是我不理解的是以下行為-
person = [];
person[0] = "Someone";
person["test"] = "SomeoneElse"
在控制台上輸入person
打印["Someone"]
,我看不到有關person.test
信息。 person.test
可以打印SomeoneElse
。 但是,如果我進入console.log(person)
,則會得到["Someone", test: "SomeoneElse"]
。 好奇地檢查這是否有意義,我試圖創建一個像這樣的結構-
var experiment = ["Someone1", test1: "SomeoneElse1"]
我得到的是
Uncaught SyntaxError: Unexpected token
我想念什么?
提前致謝!
在控制台上鍵入
person
打印["Someone"]
。
Array.prototype.toString
格式化此輸出,並且僅考慮自身的“數組值”,而沒有其他屬性。
但是,如果我進入
console.log(person)
,則會得到["Someone", test: "SomeoneElse"]
。
console.log
輸出有關對象的其他信息,包括自己的屬性。
未捕獲的SyntaxError:意外令牌
因為那是偽造的語法; 數組文字語法不允許使用鍵,因為不應將數組值包含鍵。 數組是數字索引的值列表 。 僅憑這樣一個事實,即可以使用對象(因為Javascript中的所有內容都是某種對象)來實現這些列表,因此您可以在數組上設置“非數字鍵”。 但這並不意味着您在正確使用數組。
這是因為JavaScript中的數組本身也是對象,並且對象可以具有屬性。 因此,擁有一個包含元素的數組是完全有效的,但在該數組對象上設置屬性也是如此。
第二個示例不起作用,因為[...,...,...]
語法專門用於實例化數組及其元素。
在控制台中鍵入人員就像有一個alert(person);
或將其值傳遞給變量或元素,因此更像是要獲取第一組可讀值。 這就是為什么它向您顯示內部值的原因,您可以嘗試添加person[1] = *something;*
,然后它將顯示某人,某物
console.log(person) -它顯示對象內的所有項目。 這更像是通知您內部內容,就像您的IDE中的文本可視化工具一樣
var experiment = ["Someone1", test1: "SomeoneElse1"]
-它將絕對引發異常,在初始化值時沒有這樣的格式,至少它期望像var ["Someone1", "SomeoneElse1"]
= ["Someone1", "SomeoneElse1"]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.