JS对象基本用法

101 阅读2分钟

对象

1.声明对象的语法
  • 正规写法:let obj = new Object({'name':'AKB'})
  • 常用写法let obj = {'name':'AKB';'age':'18'}
  • 注意点:键名是字符串不是标识符,可以包含任何字符,也可以以数字开头;引号可以省略(当键名里面包含有特殊字符时不能省),省略之后只能写标识符,键名仍是字符串
2.属性名&属性值
  • 每个key都是对象的属性名
  • 每个value都是对象的属性值
  • Object.keys(obj)可以得到obj的所有key
  • 用变量做属性名时,要用[ ]包含起来,不加[ ]d的属性名会自动变成字符串,加了[ ]则会当作变量求值。
3.对象的隐藏属性
  • JS中每一个对象都有一个隐藏属性,这个隐藏属性存储着其共有属性组成的对象的地址
  • 共有属性组成的对象叫原型,即隐藏属性存储着原型地址

原型

1.每个对象都有原型
  • 原型里存着对象的共有属性
  • eg:obj的原型就是一个对象,obj.__proto__存着这个对象的地址,此对象里有toString/constructoc/valueOf等属性

2.对象的原型也是对象

  • 对象的原型也有原型
  • obj={}的原型即为所有对象的原型,这个原型包含所有对象的共有属性,是对象的根,这个原型的原型为null

删除属性

1.如何删除属性

  • delete obj.xxx
  • delete obj['xxx']

2.区分【不含属性名】&【属性值为undefined】

  • 不含属性名的情况 'xxx' in obj === false
  • 含有属性名,但其值为undefined的情况 'xxx' in obj && obj.xxx === undefined
  • obj.xxx === undefined 不能用来判定'xxx'是否为obj的属性

查看属性(读属性)

1.如何查看属性

  • 查看自身所有属性 Object.keys(obj)
  • 查看自身+共有属性 console.dir(obj)
  • 补充:查看对象所有值 Object.values(obj);查看所有对象属性&属性值Object.entries(obj)

2.查看单属性

  • 中括号语法 obj['key']
  • 点语法 obj.key
  • obj.name 等价于 obj['name'],这里点后的name为字符串
  • obj.name 不等价于 obj[name],这里的[name]为变量
  • 以上,注意区分obj['name']obj.name,obj[name],注意区别name和'name'。

3.'name' in objobj.hasOwnProperty('name')二者的区别

  • 前者区分不了该属性是自身所有的还是公共属性
  • 后者可以区分该属性是否只有自身所有

修改或增加属性

1.修改自身属性

  • 直接赋值:obj['name'] = 'ABC'
  • 批量赋值:object.assign(obj,{age:18,gender:'man'})

2.修改共有属性

  • 注意:无法通过自身修改/增加共有属性
  • 可通过 Object.prototype['toString'] = 'xxx'来修改原型,但一般不改原型。

3.修改隐藏属性

  • 语法 let obj = Object.create(common)

4.增加属性:同修改属性。