JS中括号点语法的运用

不考虑[]用作数组或集合下标使用的情况,单针对某个对象,这两种写法本质是一样的。

但是第2种写法可以使用变量作为属性名,在实际使用过程中非常灵活,比如可以写出很通用的代码,而不用考虑具体对象的结构。

那为什么有时候,用点才能取到值,有时候却要用中括号呢?

不考虑[]用作数组或集合下标使用的情况,单针对某个对象,这两种写法本质是一样的。

你能举个例子, 只能用点或只能用中括号取属性值吗?


中括号运算符总是能代替点运算符。但点运算符却不一定能全部代替中括号运算符。

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

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

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

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"]去执行的

所以用点的时候后面一定要是一个指定的  属性名,用[]时候后面一定是一个变量或者固定属性名的字符串。!


木有区别。都是取值(设置值)。可以说是一个习惯用法。如果用[]的话,就有点小小区别了。如果[]用于集合或数组,则是获取[i]里面的第i个值。所以。[]在对象或数组(集合)中这样用。对应于对象,建议用"."获取或设置。如果对象用[],则是获取或设置["age"]里面属性叫age所对应的属性值


a.b中a是json对象,b是a中的属性名。a[b]中a是数组对象,b是a的数组索引,即a中第b个元素

你可能感兴趣的:(JS中括号点语法的运用)