首页 > javascript 中的对象属性名为 number 时

javascript 中的对象属性名为 number 时

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


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

答案是YES

JSON.stringify({1:1})

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

你可以试试。


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

var obj = {1: 2}; 

for (var x in obj) {
    alert(typeof x);    // 输出为 string
}

php
var obj = {name-new:'sf'};//error var obj = {'name-new':'sf'}//ok
【热门文章】
【热门文章】