新增的es6数据结构是什么(es6,web开发)

时间:2024-05-07 12:02:15 作者 : 石家庄SEO 分类 : web开发
  • TAG :

    %E6%96%B0%E5%A2%9E%E7%9A%84es6%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E6%98%AF%E4%BB%80%E4%B9%88

新增结构有:1、Symbol,表示独一无二的值,是一个函数结构;2、Set,指的是“集合”结构,类似数组,允许存放无序且不能重复的数据;3、WeakSet,类似Set,内部数据也不能有重复值;4、Map,指的是“字典”结构,可存储映射关系。

本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。

1、Symbol

SymbolES6中新增的一个基本数据类型之一,它是一个函数。每一个从Symbol函数返回的Symbol值都是独一无二的,symbol值作为对象属性的标识符,也是唯一的用途的。

symbol作为key

第一种方式,直接在对象的字面量中添加。

第二种方式,通过添加数组方式添加。

第三种方式,通过对象中的defineProperty方法添加。

通过symbol获取对应的值

需要用数组方式来获取,不能通过点语法,否则会获取到字符串key。

symbol不能被隐式转换成string类型。

注意:Symbol函数中的参数是symbol描述符,这是在ES10新增的特性

我们不能直接alert一个symbol对象,但是我们可以通过toString的方式或者.description来获取symbol对象的描述符。

遍历symbol

在使用for遍历、object.keys中是获取不到symbol健的,对此object还提供了getOwnPropertySymbols方法,用于获取对象中所有symbol的key。

全局symbol对象注册

有时,我们可能需要多个symbol的值是一致的,我们可以通过symbol提供的静态方法for方法传入一样的描述符来使它们的值一致。

Symbol.for

该方法会在使用给定键搜索运行时符号注册表中的现有符号,并在找到时返回它。否则,使用此键在全局符号注册表中创建一个新符号。

Symbol.keyFor

该方法用于获取全局symbol的描述符。

2、Set

Set对象(类似数组)允许你存放任何数据类型,但里面的值不能重复。

Set常用方法

3、WeakSet

WeakSet是类似Set的另外一种数据结构,内部数据也不能有重复值。

它与Set的区别

WeakSet只能存放对象类型,不能存放基本数据类型

WeakSet对元素是弱引用

基本使用

WeakSet常用方法

关于遍历

WeakSet不能被遍历,因为它只是对对象进行弱引用,如果遍历去获取元素,有可能导致对象不能被GC回收。

所以WeakSet中的对象是不能获取的

4、Map

ES6新增的数据结构,用于存储映射关系。我们知道在JavaScript中对象中是不能用对象来作为key的。(假如我们把对象作为key,其内部会将对象转换为字符串[object object]

Map则可以把对象作为key进行存储,可以通过set方法添加到Map中,也直接通过字面量的方式添加。

Map常用方法

遍历Map

通过foreach语句遍历Map

通过for..of遍历Map

5、WeakMap

Map类似,也是以键值对的形式存在的

和Map的区别

WeakMapkey只能使用对象,不接受其他的类型作为key

WeakMapkey对对象是弱引用

基本使用

WeakMap常用方法

关于遍历

WeakSet一样,正因为它是弱引用,WeakMapkey是不可枚举的,如果key可枚举那其列表将会受GC影响。

本文:新增的es6数据结构是什么的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:es6的set和map的区别有哪些下一篇:

30 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18