js中.和[]的区别

在js中,对象属于是键值对的集合

//例如
const obj = {
    name: '残梦',
    say:function(){
        console.log('你好')
    }
}

在上面这个代码中,name就属于是key,而'残梦'就是value

如何获取对象属性

第一种方式: .语法

  • student.name 获取到student的name属性
  • student.say 获取一个函数

第二种语法: []语法

  • student[“name”] 等价于student.name
  • student[“say”] 等价于student.say

他们两者究竟有何差异呢?

  • .语法很方便,但是有很多的坑,比如:
  1. .后面不能使用js的关键字,例如:(class,this,function)
  2. .后面不能有数字
var obj={};
obj.this=5; //语法错误
obj.0=10;   //语法错误
  • []使用更加广泛
  1. o1[name]
  2. [‘class’],[‘this’]也可以随意的去使用obj[‘this’]=10
  3. [1],[2]也可以使用obj[3]=10
  4. 也可以这样用 ["{abc}"] 给对象添加了{abc}属性

设置属性时的差异?

  • student[‘name’] <=> student.name
  • 第一种设置的时候,如果student没有name属性,就会添加一个name属性
  • 但是第二种不会,所以一般更加推荐使用[]这种方式

小结

总之一句话: []更强大,点就是用起来更加习惯一些,一开始用[]的时候总是会当成数组,需要注意一下

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值