物件鍵中的引號:語意上的差異?
在 JavaScript 中,可以使用有或沒有引號的鍵來定義物件屬性。雖然這看起來似乎是一個微小的差異,但它確實為屬性存取的行為帶來了微妙的變化。
帶引號的屬性與不帶引號的屬性
範例
考慮以下範例:
obj1 = {'foo': 'bar'}; obj2 = {foo: 'bar'};
在這種情況下, obj1 和obj2具有相同的鍵值對,但可以以不同方式存取該屬性:
console.log(obj1.foo); // 'bar' console.log(obj2.foo); // ReferenceError: foo is not defined console.log(obj2['foo']); // 'bar'
如您所見,無法使用點表示法存取 obj2,因為鍵「foo」不是有效的 JavaScript 識別碼。相反,必須使用括號表示法。
注意:
雖然使用引號與否在功能上沒有顯著差異,但 JSON 資料交換格式需要雙引號圍繞屬性鍵。如果您打算以 JSON 格式交換數據,建議始終在物件鍵周圍使用引號。
以上是JavaScript 中帶引號與不帶引號的物件鍵:語意差異是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!