原文:http://pij.robinqu.me/JavaScript_Core/ECMAScript/es6/es6_data_types.htmlphp
ES6新加入的數據類型有:node
這些數據結構的支持並不普遍,在寫這篇文章的時候。僅有新版本的Firefox和Node v0.11.x以上版本(開啓--harmony
參數後)支持。git
提供傳統意義上的Map。支持任意對象做爲key。es6
new Map(iterable)
github
iteralbe是Array或其餘可枚舉的對象,其每一個元素是key、value的2元數組。編程
重要的屬性和方法:數組
傳統意義上的Set
。數據結構
Weak開頭的Set和Map不對key持有引用,不影響GC。所以,他們沒有辦法對自身entries的key進行直接的枚舉。ecmascript
構造函數和普通的Map相同:
new WeakMap(iterable)
new WeakSet(iterable)
相似Ruby的Struct的,可是目前沒有任何引擎實現。
var proxy = Proxy(target, handler);
將target
的函數調用轉向到handler
之上。目前除了Firefox支持,沒有其餘任何Javascript引擎支持。
筆者還在理解中。目前新版的Chrome和node支持。
原生版本的Promise API,有關Promise的內容,會在另一篇文章內詳細說明: Javascript Promise。
Proxy是Javascript元編程的一道大門。Javascript在語言層面沒法去重載操做符,可是經過Proxy API,咱們能夠完全的修改一個對象的各類行爲。這種強大的行爲已經在node --harmony
和Firefox中支持了。
待補充。能夠參考:
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 ↩