JS对象的基本用法

89 阅读1分钟

声明对象的两种语法

可以用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'是正确写法。