#再读JS# (2)对象基本用法

62 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

  • 声明对象的两种语法

第二种才是正规的,第一种是大家的简化版

let a={};  //以下都以a为对象来阐述
let a=new Object();
  • 删除对象的属性

delete a.属性名    //只有这样才能删除
a.属性名=undefined   //只是将a的这个属性置为undefined,实际上还存在
  • 查看对象的属性

Object.keys(a)   //数组形式查看属性值
Object.values(a)  //数组形式查看属性名
Object.entries(a)    //数组形式查看属性名和值
属性名 in a    //判断a的所有属性名里是否有该'属性名'
a.hasOwnProperty(属性名)       //判断a的自有属性名里是否有该'属性名'
console.log.dir(a)      //打印a的所有属性名和值

  • 修改或增加对象的属性

a.属性名=属性值;
a[属性名]=属性值;(属性名可以是变量)
Object.assign(a,{属性名:属性值,属性名2:属性值2})     //批量修改a的属性
  • 'name' in obj和obj.hasOwnProperty('name') 的区别

'name' in obj:'name'是obj的自有属性或者共有属性,都会返回true
而obj.hasOwnProperty('name'): 只有在'name'为自有属性时才会返回true,共有属性会返回false