js对象属性 通过点(.) 和 方括号([]) 的不同之处

1.0

javascript访问对象属性有两种方法,第一是点符号法,第二是方括号表示法,括号之间的值可以是任何表达式。因此,如果属性名称存储在变量中,则可以使用括号表示法。

在javascript中,我们使用以下两种方法访问对象属性:

  • 点符号 - foo.bar
  • 方括号 - foo[someVar]foo["string"]

但只有第二种情况允许动态访问属性:

var foo = { pName1 : 1, pName2 : [1, {foo : bar }, 3] , ...}

var name = "pName"
var num  = 1;

foo[name + num]; // 1

// -- 

var a = 2;
var b = 1;
var c = "foo";

foo[name + a][b][c]; // bar

因此, 要使用变量动态访问对象属性,可以使用第二种方法“方括号法”,如下所示:

let foo = {
    bar: 'Hello World'
};

let prop = 'bar';

foo[prop];

2.0

为了减少代码量,有时需要用变量名充当对象的属性,方便调用。

作为对象属性时,有两种方式存取。一是点号(.)运算符,一是中括号([])运算符

var p = {name:"Jack"}; 
alert(p.name);//点号 
alert(p['name']);//中括号

1、点号要求后面的运算元是合法的标识符(即合法的变量命名),对于不合法的不可以使用

2、中括号要求的则是一个字符串即可,不必是合法的变量命名。如4p是不合法的变量命名(因为以数字开头),但却可以作为对象属性名(前提是字符串)

var p = { 
     "4p":"Jack", 
     "-3":"hello", 
      name:"Tom", 
      "我":"me", 
      "我 们":"we"
        }; 

 alert(p.4p);//不合法,语法分析时报错,不能以数字开头

 alert(p.我);//合法,输出"me" 

 alert(p.我 们);//不合法,语法分析时报错("我"和"们"之间有个空格) 

 alert(p["我 们"]);//合法,输出"we",虽然"我"和"们"之间有空格,仍然可以用[]存取 

 alert(p['4p']);//合法,输出"Jack" alert(p.name);//合法,输出"Tom"

 

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值