摘要:引入的數據結構新加入的數據類型有這些數據結構的支持并不廣泛,在寫這篇文章的時候。是或其他可枚舉的對象,其每個元素是的元數組。開頭的和不對持有引用,不影響。因此,他們沒有辦法對自身的進行直接的枚舉。目前新版的和支持。
原文: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中支持了。
待補充??梢詤⒖迹?/p>
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??
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/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 源...
閱讀 1682·2021-11-17 09:33
閱讀 3546·2021-11-16 11:40
閱讀 3065·2019-08-30 11:23
閱讀 1058·2019-08-29 16:36
閱讀 2475·2019-08-29 13:23
閱讀 1750·2019-08-29 12:59
閱讀 1554·2019-08-29 12:42
閱讀 1990·2019-08-28 18:22