最近在学习javascript,然后发现hao123的源码里有
currentProfile = {"urls":"false","skin":"skin-color-green","HAOTOPLIST_NEW":"top2_topmsg","navigate":"0"},
defaultProfile = {"urls":"false","skin":"skin-color-green","HAOTOPLIST_NEW":"top2_topmsg","navigate":"0"},
我的疑问是:对象的属性为什么加了“”?
不是应该是currentProfile={urls:"false",skin:"skin-color-green",HAOTOPLIST_NEW:"top2_topmsg",navigate:"0"}吗?对象JavaScript引号

解决方案 »

  1.   

    对javascript来说两者都一样,但前者是json的规范
      

  2.   

    嗯,这个解释靠谱
        alert(eval('{foo:"bar"}'));      // return "bar", incorrect
    在不加引号时这个返回的是bar,而不是一个json对象。alert(eval('({"foo": "bar"})')); // return JSON object, correct
      

  3.   

    最好都加上 当从后台传过来时用eval解析时会把urls当做一个未定义的变量对待了  而非对象的名称
      

  4.   

    json的规范是要加  “” 的
      

  5.   

    json中的规范是要加  “” 的js代码中可以不加“”, 这要求属性名称是非保留字的正常标识符。
    比如下面的都要加“”
    obj = { "class":"asd", "201":"asd", "code-javascript":"asd", "我是属性名称":"asd", "0egg":"asd", "$&":"asd" };