资讯专栏INFORMATION COLUMN

ES6引入的数据结构 - ES6 - ECMAScript特性 - Javascript核心

fobnn / 3466人阅读

摘要:引入的数据结构新加入的数据类型有这些数据结构的支持并不广泛,在写这篇文章的时候。是或其他可枚举的对象,其每个元素是的元数组。开头的和不对持有引用,不影响。因此,他们没有办法对自身的进行直接的枚举。目前新版的和支持。

  

原文: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中支持了。

待补充。可以参考:

http://www.slideshare.net/BrendanEich/metaprog-5303821

http://soft.vub.ac.be/~tvcutsem/proxies/

http://ariya.ofilabs.com/2013/07/es6-and-proxy.html

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

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

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

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/78136.html

相关文章

  • 做一名精致JavaScripter 01:JavaScript简介

    摘要:精致从细节做起。标准会在每年的月发布一次,作为当年的正式版本,便是年发布的正式版本。支持情况各大浏览器对的支持情况浏览器支持情况对的支持情况支持情况。在浏览器中基于实现的已经成为的重要组成部分。 精致从细节做起。前端的工作也有一段时间了,大大小小的前端框架都有接触过,越是深入学习越是感觉之前的学习过于粗糙,基础不够扎实,于是准备近期把JavaScript的基础知识点梳理一下,查缺补漏,...

    张巨伟 评论0 收藏0
  • ES6语法特性 - ES6 - ECMAScript特性 - Javascript核心

    摘要:前三个是为了解决变量声明定义的问题,而最后一个则影响最大。下文只介绍前三个特性。这是因为的的不支持块级作用域,变量仅仅被限制到函数作用域内。 原文: http://pij.robinqu.me/JavaScript_Core/ECMAScript/es6/es6_syntax_features.html 源代码: https://github.com/RobinQu/P...

    Joyven 评论0 收藏0
  • ES6语法特性 - ES6 - ECMAScript特性 - Javascript核心

    摘要:前三个是为了解决变量声明定义的问题,而最后一个则影响最大。下文只介绍前三个特性。这是因为的的不支持块级作用域,变量仅仅被限制到函数作用域内。 原文: http://pij.robinqu.me/JavaScript_Core/ECMAScript/es6/es6_syntax_features.html 源代码: https://github.com/RobinQu/P...

    StonePanda 评论0 收藏0
  • ES6语法特性 - ES6 - ECMAScript特性 - Javascript核心

    摘要:前三个是为了解决变量声明定义的问题,而最后一个则影响最大。下文只介绍前三个特性。这是因为的的不支持块级作用域,变量仅仅被限制到函数作用域内。 原文: http://pij.robinqu.me/JavaScript_Core/ECMAScript/es6/es6_syntax_features.html 源代码: https://github.com/RobinQu/P...

    jas0n 评论0 收藏0
  • ES6特性概述 - ES6 - ECMAScript特性 - Javascript核心

    摘要:特性概述比较新特性更多。之后后分篇描述目前已经比较成熟的语法特性例如和。同上,但返回该元素的索引号。和对象的属性行为一致。不将参数强制转行为。判断是否为在范围内的正整数。不少层面的特性可以通过进行兼容性支持。 原文: http://pij.robinqu.me/JavaScript_Core/ECMAScript/es6/es6_api_extension.html 源...

    Ali_ 评论0 收藏0

发表评论

0条评论

fobnn

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<