JS 对象基本用法

85 阅读1分钟

内容1:声明对象的两种语法

  • 简单语法:
let obj = {name:'xiaoli'}

  • 标准语法:
let obj2 = new Object({name:'xiaohong'})

内容2:如何删除对象的属性

  • delete方法:
delete obj2.name
delete ob2['name']

delete obj3[age] //age is not defined

let age = 'age'
delete obj3[age] //true

内容3:如何查看对象的属性

  • Object.keys(),查看所有的键
  • Object.values(),查看所有的值
  • Object.entries(),查看所有的键和值
  • console.dir(obj3),查看自身和共有属性
> let obj3 = {name:'lili',age:19,gender:'woman'}
<· undefined

> obj3
<· {name: "lili", age: 19, gender: "woman"}

> Object.keys(obj3)
<· (3) ["name", "age", "gender"]

> Object.values(obj3)
<· (3) ["lili", 19, "woman"]

> Object.entries(obj3)
<· 
0: (2) ["name", "lili"]
1: (2) ["age", 19]
2: (2) ["gender", "woman"]
length: 3

> console.dir(obj3)
Object
age: 19
gender: "woman"
name: "lili"
__proto__: Object
<· undefined

内容4:如何修改或增加对象的属性

  • 点方法:obj3.age = 21
  • 中括号方法:obj3['name'] = 'liuli'
obj3.age = 21

obj3['name'] = 'liuli'

obj3[gender] = 'not a man' //gender is not defined

let gender = 'gender'
obj3[gender] = 'no a man'


内容5:'name' in obj和obj.hasOwnProperty('name') 的区别

  • 'name' in obj,只能查看属性是否存在,不能判断该属性是否属于自己还是共有
  • obj.hasOwnProperty('toString'),可以判断一个属性是自身还是共有
> 'name' in obj3
<· true

> obj3.hasOwnProperty('name')
<· true

> obj3.toString()
<· "[object Object]"

> obj3.hasOwnProperty('toString')
<· false