JS宣告物件時屬性名加引號與不加引號的問題及解決方法
阿新 • • 發佈:2019-01-14
一般情況下屬性名加引號和不加引號是都可以的,效果是一樣的。
var obj = {
name : '你好',
'age' : 1,
};
document.write( obj['name'] + '<br />' );
document.write( obj.age);
上面兩行程式碼均可以正確執行。
當且僅當你的屬性名是非法怪異的名字時候,會報錯。
var obj = {
333 : '這個會報錯'
};
document.write( obj.333);
此時報錯。
var obj = { “333”: '這個也會報錯' }; document.write( obj.333);
如果屬性名是數字,則必須有雙引號,並且用[] 方括號訪問。
var obj = {
"333": '這個正確'
};
console.log(obj["333"]);
結論:使用合法屬性名,使用 . 和 [] 訪問都可以;
如果屬性名是數字,則必須用“”包圍,並且用 [] 方括號訪問。