1. 声明对象的两种语法
let obj = {'name':'monk','age':18} //对象字面量
let obj = new Object({'name':'monk'}) //构造函数
2. 如何删除对象的属性
删除obj的xx属性:
delete obj.xx 或 delete obj['xx']
delete会删除属性名和属性值
let obj = {'name':'luffy','age':17}
delete obj.name //delete obj['name']
obj //{age:17} 这里的属性名age是字符串
3. 如何查看对象的属性
查看自身所有属性名 Object.keys(obj)
查看自身所有属性值 Object.values(obj)
查看自身属性和共有属性 console.dir(obj)
查看自身的某个属性 obj['key']或obj.key //注意中括号里的'' 这里的key代指具体的属性名
4. 如何修改或增加对象的属性
-
直接赋值
let obj = {name:'monk'} obj.name = 'monk' obj['name'] = 'monk' obj['na'+'me'] = 'monk' let key = 'name'; obj[key] = 'monk' -
批量赋值
Object.assign(obj,{age:18,gender:'man'})
5. 'name' in obj和obj.hasOwnProperty('name') 的区别
'name' in obj 可以判断一个对象是否有原生属性或者原型属性
obj.hasOwnProperty('name') 只能判断原生属性,不能判断原型属性