[英]Strange object member behaviour with node.js
目前我正在嘗試使用方括號表示法設置對象的屬性。 代碼如下
var obj = {};
obj['c9c4d17a698ace65c80416112da3ff66e652ec013222f5b458a1dd4950580e77'] = 'one';
obj['8d207abeb95e36abfa2cdae6ac700e776c982ec64bcbfd501cb48fec55a13a77'] = 'two';
如果你然后執行console.log(obj)
或console.dir(obj)
,結果是
{ c9c4d17a698ace65c80416112da3ff66e652ec013222f5b458a1dd4950580e77: 'one',
'8d207abeb95e36abfa2cdae6ac700e776c982ec64bcbfd501cb48fec55a13a77': 'two' }
我想知道的是為什么一個屬性鍵被設置為不帶引號的文字而另一個被設置為字符串。 它們都以相同的方式設置。 我是否成為鑰匙內某些逃脫序列的受害者?
在OS X Yosemite 10.10.1上, node --version
是v0.10.33
只要您的對象鍵以數字開頭,它就會在控制台中檢查時顯示為引號。
這不會影響任何內部表示。 這些鍵總是字符串,as-assigned。 只是當你檢查它們時,它們只會在需要時被引用(例如當它們包含保留字符或以數字開頭時)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.