JS 对象基本用法

100 阅读1分钟

1.声明对象的两种语法


let obj1 = {'name':'luke','age':20}     //快速方便的写法
let obj2 = new Object({'name':'luke'})  //正规的写法

放到chrome的控制台执行,可以看到两个声明的方法都是可以的: image.png

2.如何删除对象的属性

obj2.name === undefind //只能使对应的属性值删去,属性名还在

image.png

delete obj2.name   //删去对象的属性值,属性名和属性值都不在
delete obj2['name'] //删去对象的属性值,属性名和属性值都不在

image.png

3.如何查看对象的属性

查看自身属性

Object.keys(obj1)

放到控制台执行,可以查询到两个自有属性nameage image.png

查看自身属性+共有属性

console.dir(obj1)

image.png

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

obj1.hasOwnProperty('toString')

image.png 通过上面对比看出,toString为共有属性,非自有属性,所以返回结果false。

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

直接赋值

let obj1 = {name: 'frank'} // name 是字符串
obj1.name = 'frank' // name 是字符串
obj1['name'] = 'frank' 

这三个直接赋值方法是一样的效果。 image.png

批量赋值

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

控制台执行代码效果: image.png

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

'name' in obj1              //查'name'是否在obj1这个对象上,但无法判断是自有的还是共有属性
 obj1.hasOwnProperty('name') //查'name'是自有属性还是共有属性

image.png 看上去返回的结果都是true,但是意义不同,'name' in obj1 只能看在不在对象上,但不能判断属性是否是自身还是共有的,所以要用到obj1.hasOwnProperty('name')