ES6新特征总结与介绍——内置对象

栏目: JavaScript · 发布时间: 5年前

内容简介:ES6 引入了一种新的原始数据类型 Symbol ,表示独一无二的值,最大的用法是用来定义对象的唯一属性名。返回由给定的 key 找到的 symbol,否则就是返回新创建的 symbol。Symbol.keyFor() 返回一个已登记的 Symbol 类型值的 key。

ES6 引入了一种新的原始数据类型 Symbol ,表示独一无二的值,最大的用法是用来定义对象的唯一属性名。

(一)Symbol

a = Symbol('sss')
b = Symbol('sss')
a === b     //false
复制代码

1. 作为属性名

  • 由于每一个 Symbol 的值都是不相等的,所以 Symbol 作为对象的属性名,可以保证属性不重名。
  • Symbol 作为对象属性名时不能用.运算符,要用[]。因为.运算符后面是字符串。
  • Symbol 值作为属性名时,该属性是公有属性不是私有属性,可以在类的外部访问。但是不会出现在 for...in 、 for...of 的循环中,也不会被 Object.keys() 、 Object.getOwnPropertyNames() 返回。如果要读取到一个对象的 Symbol 属性,可以通过 Object.getOwnPropertySymbols() 和 Reflect.ownKeys() 取到。

2. 定义常量

3. Symbol.for()

返回由给定的 key 找到的 symbol,否则就是返回新创建的 symbol。

4. Symbol.keyFor()

Symbol.keyFor() 返回一个已登记的 Symbol 类型值的 key。

let sym = Symbol.for("foo")
Symbol.keyFor(sym)  // "foo"
复制代码

(二)Map 与 Set

ES6 引入了四种新的原始数据结构。

1. Set

ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。

  1. Set 结构的实例有以下属性:
  • Set.prototype.size:返回Set实例的成员总数。
  1. 四个操作方法:
  • add(value):添加某个值,返回 Set 结构本身。
  • delete(value):删除某个值,返回一个布尔值,表示删除是否成功。
  • has(value):返回一个布尔值,表示该值是否为Set的成员。
  • clear():清除所有成员,没有返回值。
  1. 遍历操作:
  • keys():返回键名的遍历器
  • values():返回键值的遍历器
  • entries():返回键值对的遍历器
  • forEach():使用回调函数遍历每个成员

2. WeakSet

首先,WeakSet 的成员只能是对象,而不能是其他类型的值。

其次,WeakSet 中的对象都是弱引用,即垃圾回收机制不考虑WeakSet对该对象的引用,也就是说,如果其他对象都不再引用该对象,那么垃圾回收机制会自动回收该对象所占用的内存。(WeakMap同)

  1. 没有Size属性
  2. 操作方法:
  • WeakSet.prototype.add(value):向 WeakSet 实例添加一个新成员。
  • WeakSet.prototype.delete(value):清除 WeakSet 实例的指定成员。
  • WeakSet.prototype.has(value):返回一个布尔值,表示某个值是否在。
  1. 不可遍历

3. Map

它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。

  1. Map 结构的实例有以下属性:
  • size 属性:返回 Map 结构的成员总数。
  1. Map 结构的实例有以下操作方法:
  • set(key, value):set方法设置键名key对应的键值为value,然后返回整个 Map 结构。
  • get(key):get方法读取key对应的键值,如果找不到key,返回undefined。
  • delete(value):删除某个值,返回一个布尔值,表示删除是否成功。
  • has(value):has方法返回一个布尔值,表示某个键是否在当前 Map 对象之中。
  • clear():清除所有成员,没有返回值。
  1. 遍历操作:
  • keys():返回键名的遍历器。
  • values():返回键值的遍历器。
  • entries():返回所有成员的遍历器。
  • forEach():遍历 Map 的所有成员。

4. WeakMap

首先,WeakMap只接受对象作为键名(null除外),不接受其他类型的值作为键名。

其次,WeakMap的键名所指向的对象,不计入垃圾回收机制。

  1. 没有Size属性
  2. WeakMap 结构的实例有以下操作方法:
  • get(key)
  • set(key, value)
  • has(value)
  • delete(value)
  1. 不可遍历

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

移动社交时代的互动搜索营销(全彩)

移动社交时代的互动搜索营销(全彩)

萧秋水、秋叶、南方锈才 / 电子工业出版社 / 2014-8-1 / 55.00元

《移动社交时代的互动搜索营销(全彩)》跳出搜索引擎的局限,告诉读者如何利用互联网找到客户的思维。《移动社交时代的互动搜索营销(全彩)》只谈如何有效利用搜索引擎(包括移动端搜索)、电商网站、新媒体,不传播所谓的一夜暴红、一夜暴富的神话。《移动社交时代的互动搜索营销(全彩)》作者利用其丰富的实战经验,结合大量国内不同行业的实际应用案例,生动地告诉读者,怎样正确地利用搜索引擎,以很小的投资获得巨大的回报......一起来看看 《移动社交时代的互动搜索营销(全彩)》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

html转js在线工具
html转js在线工具

html转js在线工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具