JS 对象基本用法

我心飞翔 分类:javascript

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')

回复

我来回复
  • 暂无回复内容