JS对象的基本用法

248 阅读1分钟

JS 对象(object)的特点:

  1. 无序的数据集合。

  2. 键值对的集合。


1.声明对象的两种语法

  • let obj={'name1':'xxx','name2':'xxx'}
  • let obj=new Object({'name':'xxx'})

2.如何删除对象的属性

  • 使用delete obj.xxxdelete obj['xxx']可以删除 obj 中 xxx 属性。

  • 使用obj.xxx = undefined可以删除 obj 中 xxx 的属性值,相当于赋予 xxx 属性一个空值。

需要注意两种用法的区别:前者为完全删除属性,后者为保留属性但属性值为空。

3.如何查看对象的属性

查看自身属性:Object.key(obj)

查看自身属性+共有属性:console.dir(obj)

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

  • 直接赋值:
  1. let obj={name:'xxx'}

  2. obj.name='xxx'

  3. obj['name']='xxx'

  4. obj['na'+'m'+'e']='xxx'

  5. let key = 'name';obj[key]='xxx'

以上 5 种方法中所有的'name'都为字符串,在方法 4 中也是因为 na、m、e 都是字符串,所以可以相加。

  • 批量赋值:

通过Object.assign (obj.{name1:xxx,name2=xxx}),可以直接给 obj 中添加 name1 和 name2 属性,值为 xxx。


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

'xxx' in obj在查看 xxx 是否为 obj 的属性时,不会区分该属性是否为共有属性。

obj.hasOwnProperty('xxx')可以查看 xxx 是自身的属性还是共有属性,返回 true 时为自身属性,false 为共有。

其他细节

  • 键名是字符串,并非标识符,字符串可以包括任意字符。

  • 写键名时,引号是可以省略的,但省略后只能写标识符,必须按照标识符规范输入。

  • 就算引号被省略,按照标识符规范输入,它也依然是字符串。