JS 什么时候用点: . ,什么时候用中括号:[] 取值

在JS中,我们取对象的属性值一般都是用点(.)表示,如Person.name,Person.age,但是有时候也会遇到Person[name]这种,那么他们具体有什么区别呢?

中括号[]:

语法可以用变量作为属性名或者访问,而点语法不可以;

常规变量量

 function createPerson(name) {
        var person = {}//new Object()
        person.name = name
        person.age = 36
        person.sayName = sayName
        return person
    }

    var obj2 = createPerson('唐僧')
    console.log(obj2.name)  //输出:唐僧
console.log(obj2["name"])  //输出:唐僧

特殊变量名用[]:

中括号语法可以在属性名中包含会导致语法错误的字符,如空格,也可以在属性名中包含关键字或者保留字;

k-k有横杠一条,不能直接用obj.k-k, 需要用obj['k-k']

let obj = {
        "k-k": 'kk',
        name: 'lani'
    }
    //特殊属性名用['']
    console.log(obj["k-k"]) //输出:kk
    console.log(obj.name); //输出:lani

 总结:

点操作符(.): 静态的。

1、后面必须是一个以属性名命名的简单标识符;

2、标识符必须直接出现在js程序中,它们不是数据类型,因此程序无法修改它们。

中括号操作符([]): 动态的。

1、方括号里必须是一个计算结果为字符串的表达式,属性名通过字符串表示;

2、字符串是js的数据类型,在程序运行时可以修改和创建它们。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值