1.声明对象的两种方法
- 简单写法
let obj = {
'name' : 'fang',
'age' : 20
}
- 标准写法
let obj = new Object({
'name' : 'fang',
'age' : 20
})
- 对象的属性名与属性值都是以键值对的形式,键名是字符串,不是标识符!
2.对象属性的增删改查
- 删
delete obj['属性名']
或者
delete obj.属性名
注:obj.属性名 = undefined并没有删除该属性,只是将属性的值变为undefined!!!该属性还在对象里面!
如何判断属性是否在对象中
'属性名' in obj使用该表达式可以判断'属性名'是否存在对象obj里,存在返回true。
如何判断属性是不是对象的自有属性(注:不是隐藏属性)
obj.hasOwnProperty('属性名')
- 增和改
直接赋值
obj.属性名 = 属性值
批量赋值
Object.assign(obj, {属性名 : 属性值 , 属性名 : 属性值 ,......})
如果对象里有该属性,便是修改,没有便是增加。
- 查
Object.keys(obj)查看对象自身所有属性
console.dir(obj)查看自身+公有属性
'属性名' in obj和obj.hasOwnProperty('属性名')的区别
'属性名' in obj可用于隐藏属性,obj.hasOwnProperty('属性名')只能判断自有属性