声明对象的两种语法
let obj = {'name': 'dsplk','age': 18} //写法1
let obj = new Object({'name':'dsplk'})
- 对象由键值对构成,其中,键名是字符串,键名是字符串,键名是字符串!
- 键名中,引号可以省略,省略了键名也是字符串
- 一些特殊的属性名:1e2-->100, 0xFF-->255
- 变量也可以用作属性名,例如
let p1 = 'name';
let obj1 = {
p1 : 'dsplk' //属性名为'p1'字符串
}
let obj2 ={
[p1] : 'dsplk' //属性名为'name'字符串
}
let obj3 ={
['p1'] : 'dsplk' //属性名为'p1'字符串
}
添加[]会进行变量求值如何删除对象属性
delete obj.name
delete obj['name'] //删除属性全部删掉
obj.name = undefined //删除属性的值
'name' in obj //false
obj.hasOwnProperty('name') //false
如何查看对象属性
Object.keys(obj) //查看obj对象的自身属性
console.dir(obj) //查看obj对象的自身属性和共有属性
obj['name'] //name为字符串
obj.name //name为字符串
obj[name] //name为变量
Object.values(obj) //查看obj对象的属性值
Object.entries(obj) //查看obj对象的所有键值对
如何修改或者增加对象的属性
//改自身
obj['name'] = 'jack'
//批量改自身
Object.assign(obj,{age:18,gender:male,...})