javascript 中的对象属性名为 number 时
黄舟
黄舟 2017-04-10 15:21:00
0
3
344

一般说对象属性名和变量名命名规则一样,如果违反规则,就得加上引号,但是在 chrome 中执行var obj = {1: 1}; 时也可以正常执行,请问这是为什么?是不是浏览器在执行这个代码的时候,自动给 1 转化为 string 了?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全員に返信(3)
Ty80

正解,把数字的 key 转化为字符。

var obj = {1: 2}; 

for (var x in obj) {
    alert(typeof x);    // 输出为 string
}
いいねを押す +0
Ty80
php
var obj = {name-new:'sf'};//error var obj = {'name-new':'sf'}//ok
いいねを押す +0
黄舟

……我看了半天才看明白你的问题

答案是YES

JSON.stringify({1:1})

JSON.parse('{1:1}')

你可以试试。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート