js操作对象属性用点和用中括号有什么不同?

比如:vara={};有时候要用:a.b=1;c=a.b;alert(c);可是有时候却要用:a[b]=1;c=a[b];alert(c);这两种写法有什么区别吗那为什么... 比如:
var a = {};
有时候要用:
a.b = 1;
c = a.b;
alert(c);
可是有时候却要用:
a[b] = 1;
c = a[b];
alert(c);
这两种写法有什么区别吗
那为什么有时候只有前者能用或是后者能用?
展开
 我来答
床前明月儿
高能答主

2019-12-16 · 探索生活中的另一种可能
床前明月儿
采纳数:101 获赞数:171950

向TA提问 私信TA
展开全部

一、功能不同

1、用点:表示定义一个对象,大部分情况下要有成对的属性和值,或是函数。

2、用中括号:表示一个数组,也可以理解为一个数组对象。 

二、语法不同

1、用点: var LangShen = {"Name":"Langshen","AGE":"28"}。langShen.Name。在JSON数据结构、写函数组的时候中经常用。

2、用中括号:var LangShen = [ "Name","LangShen","AGE","28" ];每个值或函数,都是独立的,多个值之间只用,(逗号)隔开,因为是数组对象。


三、访问方式不同

1、用点:对象,访问时,用.(点)来层层访问。

2、用中括号:访问时,也是和数组一样,alert( LangShen[0] ); 


参考资料来源:百度百科-javascript

奇七默默
推荐于2018-02-27 · TA获得超过121个赞
知道答主
回答量:4
采纳率:100%
帮助的人:3999
展开全部
var test ={name:1}
用点的时候,后面需要是一个指定的属性名称,譬如说 test.name,不需要用引号括起来,因为默认name就是test里面的属性,但是如果写 var obj = name 。test.obj就是不正确的,因为obj这个时候是被当成一个固定的字符串,不是变量。

用中括号的时候 ,括号里面可以是变量或者字符串,譬如说,var obj = "name",test[obj]会自动识别成obj["name"],因为中括号会计算一次生成字符串访问。当然可以直接写obj["name"],

其实 test.name 最终也会按照 test["name"]去执行的

所以用点的时候后面一定要是一个指定的 属性名,用[]时候后面一定是一个变量或者固定属性名的字符串。
有误请指正,谢谢!
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
温馨还肃然的毛豆H
2017-08-18 · TA获得超过391个赞
知道小有建树答主
回答量:188
采纳率:66%
帮助的人:65万
展开全部
  1. 中括号运算符总是能代替点运算符但点运算符却不一定能全部代替中括号运算符。

  2. 中括号运算符可以用字符串变量的内容作为属性名。点运算符不能。

  3. 中括号运算符可以用纯数字为属性名。点运算符不能。

  4. 中括号运算符可以用js的关键字和保留字作为属性名。点运算符不能。


    ps:点号后加标识符(静态的)

    中括号放字符串,字符串可以是动态的,obj['string'+variable]

    如果是静态的还是用点号方便

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
水能载舟Y3010d0c
2016-07-30 · TA获得超过635个赞
知道小有建树答主
回答量:559
采纳率:0%
帮助的人:146万
展开全部
中括号运算符总是能代替点运算符。但点运算符却不一定能全部代替中括号运算符。

中括号运算符可以用字符串变量的内容作为属性名。点运算符不能。

中括号运算符可以用纯数字为属性名。点运算符不能。

中括号运算符可以用js的关键字和保留字作为属性名。点运算符不能
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
joychen_
2014-09-23 · TA获得超过1747个赞
知道大有可为答主
回答量:1617
采纳率:100%
帮助的人:1837万
展开全部
不考虑[]用作数组或集合下标使用的情况,单针对某个对象,这两种写法本质是一样的。
但是第2种写法可以使用变量作为属性名,在实际使用过程中非常灵活,比如可以写出很通用的代码,而不用考虑具体对象的结构。
追问
那为什么有时候,用点才能取到值,有时候却要用中括号呢?
追答
不考虑[]用作数组或集合下标使用的情况,单针对某个对象,这两种写法本质是一样的。

你能举个例子, 只能用点或只能用中括号取属性值吗?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式