对象的定义
对象是无序的数值集合或者键值对的集合
声明对象的语法
let object = { 'name' : 'zoe' , 'age' : 18 }let object = new Object({ 'name' : 'zoe' , 'age' : 18 })-
console.log({ 'name' : 'zoe' , 'age' : 18 })此为匿名对象
其中,'name'是键名,键名只能是字符串,不是标识符,可以包含任意字符。键名的引号可以省略,省略之后只能写标识符,此时键名还是字符串。
删除对象的属性
语法
delete obj.namedelete obj['name']-
obj.name=undefined令属性名的值为空,此时属性名存在,并没有删除
如何查看对象的属性
语法
-
Object.keys(obj)可以得到obj的所有key -
Object.values(obj)可以得到obj的所有属性值 -
Object.entries(obj)查看所有key及其值 -
obj.name和obj['name']查看单个属性的值 -
console.dir(obj)查看自身属性+共有属性
如何修改或增加对象的属性
直接赋值
let obj = {name: 'frank'}obj.name = 'frank'obj['name'] = 'frank'obj['na'+'me'] = 'frank'-
let key = 'name'; obj[key] = 'frank'此时key是变量,用变量的值作为属性名,可以把变量用[]括起来。
批量赋值
Object.assign(obj, {age: 18, gender: 'man'})其中obj是对象名
修改隐藏属性
let common = {kind: 'human'}
let obj = Object.create(common)
obj.name = 'frank'`
image.png
'name' in obj和obj.hasOwnProperty('name')的区别
-
'name' in obj判断属性名是否在对象里面,不会判断是自身还是共有的 -
obj.hasOwnProperty('toString')判断一个属性是自身的还是共有的








网友评论