ES6引入的数据结构 - ES6 - ECMAScript特征 - Javascript中心

原文:http://pij.robinqu.me/JavaScript_Core/ECMAScript/es6/es6_data_types.html

源代码: https://github.com/RobinQu/Programing-In-Javascript/blob/master/chapters/JavaScript_Core/ECMAScript/es6/es6_data_types.md

  • 本文须要补充更多例子
  • 本文存在讲明,但该网站的Markdown编辑器不支撑,所以没法一般展现,请到原文参考。

ES6引入的数据结构

ES6新到场的数据类型有:

  • WeakMap
  • WeakSet
  • Map
  • Set
  • Typed Objects1
  • Proxy2
  • Symbol3
  • Promise4

这些数据结构的支撑并不普遍,在写这篇文章的时刻。唯一新版本的Firefox和Node v0.11.x以上版本(开启--harmony参数后)支撑。

Map

供应传统意义上的Map。支撑恣意对象作为key。

new Map(iterable)

iteralbe是Array或其他可罗列的对象,其每一个元素是key、value的2元数组。

主要的属性和要领:

  • Map.prototype.size
  • Map.prototype.clear()
  • Map.prototype.entries()
  • Map.prototype.forEach(callback, thisArg)
  • Map.prototype.get(k)
  • Map.prototype.set(k,v)
  • Map.prototype.has(k)
  • Map.prototype.keys()
  • Map.prototype.values()

Set

传统意义上的Set

  • Set.prototype.size
  • Set.prototype.add(v)
  • Set.prototype.clear()
  • Set.prototype.delete(v)
  • Set.prototype.entries()
  • Set.prototype.forEach(callback, thisArg)
  • Set.prototype.has(v)
  • Set.prototype.keys()
  • Set.prototype.values()

WeakMap

Weak开首的Set和Map不对key持有援用,不影响GC。因而,他们没有办法对本身entries的key举行直接的罗列。

组织函数和一般的Map雷同:

new WeakMap(iterable)

  • WeakMap.prototype.clear()
  • WeakMap.prototype.delete(k)
  • WeakMap.prototype.get(k)
  • WeakMap.prototype.has(k)
  • WeakMap.prototype.set(k,v)

WeakSet

new WeakSet(iterable)

  • WeakSet.prototype.add(v)
  • WeakSet.prototype.clear()
  • WeakSet.prototype.delete(v)
  • WeakSet.prototype.has(v)

Typed Objects

相似Ruby的Struct的,然则现在没有任何引擎完成。

Proxy Objects

var proxy = Proxy(target, handler);

target的函数挪用转向到handler之上。现在除了Firefox支撑,没有其他任何Javascript引擎支撑。

Symbol

笔者还在明白中。现在新版的Chrome和node支撑。

Prmoise

原生版本的Promise API,有关Promise的内容,会在别的一篇文章内详细申明: Javascript Promise

Proxy

Proxy是Javascript元编程的一道大门。Javascript在言语层面没法去重载操作符,然则经由过程Proxy API,我们能够完全的修正一个对象的种种行动。这类壮大的行动已经在node --harmony和Firefox中支撑了。

待补充。能够参考:

  1. http://wiki.ecmascript.org/doku.php?id=harmony:typed_objects 

  2. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy 

  3. http://people.mozilla.org/~jorendorff/es6-draft.html#sec-symbol-constructor 

  4. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise 

    原文作者:RobinQu
    原文地址: https://segmentfault.com/a/1190000000515162
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞