js的object的key需要引号吗,JavaScript中对象是否需要加引号?
對象的屬性名是包括空字符串在內的所有字符串。
那么問題來了,我們平時定義的對象如下,是沒有引號""or''的,這樣不加引號有沒有錯呢?
答案是,加不加分情況!但加了肯定沒問題...
一般情況下
一般情況下,加不加引號都一樣,
var object= {
name: 'Leonardo',
'age': 21,
};
document.write('name: ' + object['name'] + '
');
document.write('age: ' + object.age + '
');
執行結果是:
name: Leonardo
age: 21
也就是說,如果是字符串,而且屬性名是合法的(不是javascript的保留字)是允許不用引號括起來屬性名。
另外,我又注意到了,調用對象的屬性名的時候,我們知道,有兩種寫法:
第一種object.name 還是 stooge."name" 呢?
第二種object[name] 還是 stooge["name"] 呢?
實驗結果表明:
第一種object.name
可以這么寫,也就是說,這種寫法也是默認支持不用引號括起來屬性名。(必須符合標識符原則)
第二種object["name"]
應該這樣寫,此種寫法類似數組,一定要在[ ]中加入對應有引號的字符串,才能識別出鍵。(萬能寫法)
特殊情況
var obj = {
123name: 'Leonardo',
}
document.write('name: ' + object.123name + '
');
這種情況就會報錯,因為如果沒有引號,key就會依照標識符原則。
(1)標識符由字母、數字和下劃線組成
(2)標識符的第一位必須是字母或者下劃線,不能是數字
如果加上引號這是可以的,所以引號下的'key'中可以說任何字符包括空格。但同時取值也需要用[' ']的方式。
var obj = {
'123name': 'Leonardo',
}
document.write('name: ' + object['123name'] + '
');
擴展
甚至還可以這樣:
var obj = {
'123name': 'Leonardo',
'': '空',
' ': '一個空格',
}
document.write('name: ' + obj['123name'] + '
');
document.write(obj[''] + '
');
document.write(obj[' '] + '
');
so,看了這篇博客之后,你是加呢還是不加呢~~
總結
以上是生活随笔為你收集整理的js的object的key需要引号吗,JavaScript中对象是否需要加引号?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 提问一个老港片
- 下一篇: windows php-cgi命令选项,