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

在JavaScript中,对象属性的访问通常使用点语法,如Person.name。但当属性名包含特殊字符或需要动态获取时,会使用中括号语法,如Person[name]。点语法适用于静态的、已知的属性名,而中括号语法则更灵活,可以处理包含空格、关键字或保留字的属性名,并允许使用变量来动态获取或设置属性。
摘要由CSDN通过智能技术生成

在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、付费专栏及课程。

余额充值