簡體   English   中英

Javascript中的名稱索引-數組/對象?

[英]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數組元素僅是數組對象屬性嗎?

這是因為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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM