JS 对象基本用法

79 阅读1分钟

1.对象是无序的数据集合,键值对的集,写法通常有以下几种:

  • let obj ={'name':'jiu','age':18}
  • let obj =new Object({'name':'jiu','age':18})//构造函数正规写法
  • console.log({'name':'jiu','age':18})//匿名对象,如果单写{'name':'jiu','age':18}则不是对象。

2.关于属性名(key):

  • 键名是字符串,不是标识符,可以包含任意字符;
  • 引号可以省略,省略之后就只能写标识符;
  • 就算引号省略了,键名也还是字符串;
  • 使用变量做属性名:
let p1='name'
let obj={p1:'xixi'}//这样写属性名为'p1';
let obj={[p1]:'xixi'}//这样写,属性名为'name';

3.对象的隐藏属性藏着原型的地址;

4.如何删除属性:

  • obj.name=undefined//有属性名但是属性值为undefined
  • delete obj.name //整个属性都不存在

5.查看属性:

  • 查看属性名:Object.keys(obj)
  • 查看自身+共有属性:console.dir(obj)
  • 查看属性值:Object.values(obj)
  • 查看所有值:Object.entries(obj)
  • 查看某一个属性值:obj.name或者obj['name']
  • 判断一个属性是自身的属性还是共有的属性:obj.hasOwnProperty('toString')

6.原型:每个对象都有原型,对象的原型也是对象,原型也有原型,值为null。

7.修改和增加对象属性:

  • let obj = {'name'='jiu'}
  • obj.name = 'jiu'
  • obj['name'] = 'jiu'
  • 批量赋值:Object.assign(obj,{p1:1,p2:2,p3:3})
  • var person = Object.create(common)//以common对象为原型来创建person。
  • 无法通过自身修改或增加共有属性。

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

  • in判断的是对象的所有属性,包括对象自身及其原型的属性;
  • 而hasOwnProperty则是判断对象自身是否具有某个属性。