摘要:引入的数据结构新加入的数据类型有这些数据结构的支持并不广泛,在写这篇文章的时候。是或其他可枚举的对象,其每个元素是的元数组。开头的和不对持有引用,不影响。因此,他们没有办法对自身的进行直接的枚举。目前新版的和支持。
原文: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()
WeakMapWeak开头的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)
WeakSetnew WeakSet(iterable)
WeakSet.prototype.add(v)
WeakSet.prototype.clear()
WeakSet.prototype.delete(v)
WeakSet.prototype.has(v)
Typed Objects类似Ruby的Struct的,但是目前没有任何引擎实现。
Proxy Objectsvar proxy = Proxy(target, handler);
将target的函数调用转向到handler之上。目前除了Firefox支持,没有其他任何Javascript引擎支持。
Symbol笔者还在理解中。目前新版的Chrome和node支持。
Prmoise原生版本的Promise API,有关Promise的内容,会在另外一篇文章内详细说明: Javascript Promise。
ProxyProxy是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
摘要:精致从细节做起。标准会在每年的月发布一次,作为当年的正式版本,便是年发布的正式版本。支持情况各大浏览器对的支持情况浏览器支持情况对的支持情况支持情况。在浏览器中基于实现的已经成为的重要组成部分。 精致从细节做起。前端的工作也有一段时间了,大大小小的前端框架都有接触过,越是深入学习越是感觉之前的学习过于粗糙,基础不够扎实,于是准备近期把JavaScript的基础知识点梳理一下,查缺补漏,...
摘要:前三个是为了解决变量声明定义的问题,而最后一个则影响最大。下文只介绍前三个特性。这是因为的的不支持块级作用域,变量仅仅被限制到函数作用域内。 原文: http://pij.robinqu.me/JavaScript_Core/ECMAScript/es6/es6_syntax_features.html 源代码: https://github.com/RobinQu/P...
摘要:前三个是为了解决变量声明定义的问题,而最后一个则影响最大。下文只介绍前三个特性。这是因为的的不支持块级作用域,变量仅仅被限制到函数作用域内。 原文: http://pij.robinqu.me/JavaScript_Core/ECMAScript/es6/es6_syntax_features.html 源代码: https://github.com/RobinQu/P...
摘要:前三个是为了解决变量声明定义的问题,而最后一个则影响最大。下文只介绍前三个特性。这是因为的的不支持块级作用域,变量仅仅被限制到函数作用域内。 原文: http://pij.robinqu.me/JavaScript_Core/ECMAScript/es6/es6_syntax_features.html 源代码: https://github.com/RobinQu/P...
摘要:特性概述比较新特性更多。之后后分篇描述目前已经比较成熟的语法特性例如和。同上,但返回该元素的索引号。和对象的属性行为一致。不将参数强制转行为。判断是否为在范围内的正整数。不少层面的特性可以通过进行兼容性支持。 原文: http://pij.robinqu.me/JavaScript_Core/ECMAScript/es6/es6_api_extension.html 源...
阅读 1666·2021-11-17 09:33
阅读 3528·2021-11-16 11:40
阅读 3053·2019-08-30 11:23
阅读 1045·2019-08-29 16:36
阅读 2462·2019-08-29 13:23
阅读 1736·2019-08-29 12:59
阅读 1539·2019-08-29 12:42
阅读 1976·2019-08-28 18:22