6
回答
js 这样的格式怎么获取值
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

a = {test:1,one:2,two:3}

如果要取1就直接a.test

那么 b = {"test":1,"one":2,"two":3}

如果要取1怎么取

 

举报
shyar
发帖于5年前 6回/163阅

以下是问题补充:

  • @shyar :两者有什么区别没有 (5年前)
  • @shyar :其实我是想问 我现在用js做多语言 我的思路是html标签中用className和js的命名一样 然后加载数据的时候可不可以不要一个一个写呢? 而是智能迭代,因为js名和classname的名称都一样了 不知道怎么实现 (5年前)
共有6个答案 最后回答: 5年前

var a = {test:1,one:2,two:3};alert(a.test);
var b = {"test":1,"one":2,"two":3};alert(b.test);
F12->Console->复制上面的代码进去后回车看看



有些时候我不回答问题,真的把我当空气了。

楼主的这个问题比较普遍,js 对象的属性名到底加不加双引号是个问题,我的同事也普遍对此无所适从,所以这里就好好的说一下吧。

大部分情况有没有双引号是没区别的的,比如楼主的例子, a.test 和 b.test 都能访问,并都能返回 1。这个大家都知道,我再说说有区别的地方。

一、特殊字符
var a = {
    "楼主": "你好" // 这个地方必须要用引号
};

a[ "楼主" ] // 你可以这样访问它,当然不能够这样 a.楼主
二、 json
 json 中的属性名必须要用双引号,否则报错。
有些人说,我后台返回的 json 字符串都是单引号,也没见报错,那是因为用的是 eval 来解析,而不是 JSON 这个对象。其实,说出上面的话就说明他对 json 完全不懂。

三、 jQuery 中的情况

尼玛,下班了……






--- 共有 1 条评论 ---
只会百度的程序员补充下,如果key中含有一些特殊符号,比如obj = {"a-b":"c"},这时候引号也是必须的。 5年前 回复
顶部