JS 对象基本用法

1,012 阅读2分钟

对象 Object是唯一一种复杂的数据类型

定义:

  • 无序的数据集合

  • 键值对的集合

目录

  • 1:声明对象的两种语法
  • 2:如何删除对象的属性
  • 3:如何查看对象的属性
  • 4:如何修改或增加对象的属性
  • 5:'name' in obj和obj.hasOwnProperty('name') 的区别

1:声明对象的两种语法

  1. 标准写法
let obj= new Object({'name':'属性值','age':'233'})

简写(常用)

let obj={'name':'属性值','age':'233'}
  1. 匿名对象写法
console.log({'name':'属性值','age':'233'})

键名是字符串,省略了也还是字符串

使用Object.keys(obj)可以得到所有的key

2:如何删除对象的属性

关键词:delete

写法:

delete obj.xxx
delete obj['xxx']   //引号不能少,没引号的是变量

检查属性在不在对象里

'xxx' in obj    //在就返回true,不在返回false

3:如何查看对象的属性

查看自身所有属性

Object.keys(obj)

查看自身+共有属性

console.di r(obj)

或者自己依次用Object.keys 打印出obj. __ proto—

判断—个属性是自身的还是共有的

obj.hasOwnProperty('toString')

两种方法查看属性

中括号语法:(新人推荐使用这种,不会弄混字符串和变量)

obj['key']

点语法:

obj.key

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

直接赋值

let obj = {name: 'frank'} 
obj.name = 'frank'
obj['name'] = 'frank'
obj['na'+'me'] = 'frank'
let key = 'name'; obj[key] = 'frank'

批量赋值

前面是对象的名字,后面是对象里的键值对

Object.assign(obj, {age: 18, gender: 'man'})

修改隐藏属性

let obj = Object.create(common)
obj.name = 'frank'
let obj2 = Object.create(common)
obj2.name = 'jack'

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

hasOwnProperty() 方法会返回一个布尔值,指示对象自身属性中(非继承属性)是否具有指定的属性, 如果 object 具有带指定名称的属性,则 hasOwnProperty 方法返回 true,否则返回 false。此方法不会检查对象原型链中的属性;该属性必须是对象本身的一个成员。

配合Object.create可以很明显的看出来,in会检查隐藏属性,hasOwnProperty不会