javascript 中的对象属性名为 number 时

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

阅读 3.8k
3 个回答

正解,把数字的 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

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

答案是YES

JSON.stringify({1:1})

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

你可以试试。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题