声明对象的两种语法
可以用let var const来声明一个变量。一般不建议用var声明变量。而对象是无序的数据集合,或键值对的集合。声明对象,则需要用一个变量和至少一个键值对。声明变量的写法:
let obj={'name':frank,'age'=18}
let obj= new Object({'name':'frank','age':18)
console.log ({'name':'frank,'age':18})
增/改
包括直接赋值和批量赋值。 直接赋值:
- obj.name='frank'
- let obj={'name':'frank','age':18}
- obj ['name']='frank'
- let key ='name' ,obj[key]='frank' 批量赋值:object.assign(obj,{p1=1,p2=2,p3=3})
删
- delete obj.name
- obj.name=undefined
- delet obj ['name']
- 用'name' in obj // false 来检查属性是否被删除;用'XXX' in obj && obj.XXX ===undefined来检查有属性名但值为空
查
- 查看自身所有属性:Objet keys(XXX)
- 查看自身属性+共有属性:console.dir(XXX) / obj.--proto--
- 点语法:obj.name
- 中括号语法:obj['name']
'name' in obj和obj.hasOwnProperty('name') 的区别
- 'name' in obj:不确定是否有name属性,要判断对象是否有name这个属性;
- obj.hasOwnProperty('name') :已经有这个属性了,但是要判断name这个属性是自身属性还是共有属性;
obj[name]与obj['name']的区别
obj[name]中的name是变量,不能直接用obj[name]='frank';obj['name']中的name是字符串,obj['mane']='name'是正确写法。