JS 对象基本用法

Object是一种非常重要的复杂数据类型,是一些属性和方法构成的数据实体,它是包含无序数据(键值对)的集合,包含在对象里的数据可以通过两种形式访问,一是属性,二是方法。

Object声明的写法

let obj = { 'name': 'frank', 'age': 18 } //简洁写法
let obj = new Object({'name': 'frank'}) //标准写法

注意点:

  1. 属性名只能是字符串和symbol,就算不是,也会自动变为字符串
  2. 当使用变量进行命名时,需要用中括号([])括起来
  3. 每个对象都有一个隐藏属性指向原型,原型即由共有属性组成的对象,所以原型也有隐藏属性

Object增删查改

增加和修改
//当属性名存在时,就是修改,属性名不存在,则为新增
obj.xxx = 'yyy'
obj['xxx'] ='yyy'
//批量新增或修改
Object.assign(obj,{'name':'jack','age':15,'gender':'女'})
查询
//查看自身所有属性名
Object.keys(obj)
//查看自身所有属性值
Object.values(obj)
//查看所有数据(属性名和属性值,结果以数组的形式展示)
Object.entries(obj) 
//控制台查看自身属性和共有属性
console.dir(obj)
//判断某个属性是否为当前对象自身的属性,还是继承自原型对象的属性
obj.hasOwnProperty('toString')
//查询自身和原型中是否含有某个属性
'xxx' in obj

‘name’ in obj和obj.hasOwnProperty(‘name’) 的区别

  1. obj.hasOwnProperty(‘name’) 只能检测对象实例属性,无法检测原型中的属性
  2. name’ in obj 只要能访问到的属性都可以检测到
删除
//两种写法,用于删除属性值,不能用于直接删除对象,建议新手使用第二种写法便于区分属性名
delete obj.xxx 
delete obj['xxx']
原型的修改和新增

无法通过自身修改来增加或修改原型中的共有属性,一般不会修改原型,修改原型会引发很多问题

//修改或新增,属性名存在就修改,不存在则为新增
obj.__proto__.toString = 'xxx' // 不推荐用 __proto__
Object.prototype.toString = 'xxx'
//使用指定的原型对象和属性创建一个新对象
Object.create(person)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值