摘要:引入的數(shù)據(jù)結(jié)構(gòu)新加入的數(shù)據(jù)類型有這些數(shù)據(jù)結(jié)構(gòu)的支持并不廣泛,在寫這篇文章的時候。是或其他可枚舉的對象,其每個元素是的元數(shù)組。開頭的和不對持有引用,不影響。因此,他們沒有辦法對自身的進行直接的枚舉。目前新版的和支持。
原文: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
本文需要補充更多例子
本文存在批注,但該網(wǎng)站的Markdown編輯器不支持,所以無法正常展示,請到原文參考。
ES6引入的數(shù)據(jù)結(jié)構(gòu)ES6新加入的數(shù)據(jù)類型有:
WeakMap
WeakSet
Map
Set
Typed Objects1
Proxy2
Symbol3
Promise4
這些數(shù)據(jù)結(jié)構(gòu)的支持并不廣泛,在寫這篇文章的時候。僅有新版本的Firefox和Node v0.11.x以上版本(開啟--harmony參數(shù)后)支持。
Map提供傳統(tǒng)意義上的Map。支持任意對象作為key。
new Map(iterable)
iteralbe是Array或其他可枚舉的對象,其每個元素是key、value的2元數(shù)組。
重要的屬性和方法:
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傳統(tǒng)意義上的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進行直接的枚舉。
構(gòu)造函數(shù)和普通的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的,但是目前沒有任何引擎實現(xiàn)。
Proxy Objectsvar proxy = Proxy(target, handler);
將target的函數(shù)調(diào)用轉(zhuǎn)向到handler之上。目前除了Firefox支持,沒有其他任何Javascript引擎支持。
Symbol筆者還在理解中。目前新版的Chrome和node支持。
Prmoise原生版本的Promise API,有關(guān)Promise的內(nèi)容,會在另外一篇文章內(nèi)詳細說明: Javascript Promise。
ProxyProxy是Javascript元編程的一道大門。Javascript在語言層面無法去重載操作符,但是通過Proxy API,我們可以徹底的修改一個對象的各種行為。這種強大的行為已經(jīng)在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??
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/78136.html
摘要:精致從細節(jié)做起。標準會在每年的月發(fā)布一次,作為當年的正式版本,便是年發(fā)布的正式版本。支持情況各大瀏覽器對的支持情況瀏覽器支持情況對的支持情況支持情況。在瀏覽器中基于實現(xiàn)的已經(jīng)成為的重要組成部分。 精致從細節(jié)做起。前端的工作也有一段時間了,大大小小的前端框架都有接觸過,越是深入學(xué)習越是感覺之前的學(xué)習過于粗糙,基礎(chǔ)不夠扎實,于是準備近期把JavaScript的基礎(chǔ)知識點梳理一下,查缺補漏,...
摘要:前三個是為了解決變量聲明定義的問題,而最后一個則影響最大。下文只介紹前三個特性。這是因為的的不支持塊級作用域,變量僅僅被限制到函數(shù)作用域內(nèi)。 原文: http://pij.robinqu.me/JavaScript_Core/ECMAScript/es6/es6_syntax_features.html 源代碼: https://github.com/RobinQu/P...
摘要:前三個是為了解決變量聲明定義的問題,而最后一個則影響最大。下文只介紹前三個特性。這是因為的的不支持塊級作用域,變量僅僅被限制到函數(shù)作用域內(nèi)。 原文: http://pij.robinqu.me/JavaScript_Core/ECMAScript/es6/es6_syntax_features.html 源代碼: https://github.com/RobinQu/P...
摘要:前三個是為了解決變量聲明定義的問題,而最后一個則影響最大。下文只介紹前三個特性。這是因為的的不支持塊級作用域,變量僅僅被限制到函數(shù)作用域內(nèi)。 原文: http://pij.robinqu.me/JavaScript_Core/ECMAScript/es6/es6_syntax_features.html 源代碼: https://github.com/RobinQu/P...
摘要:特性概述比較新特性更多。之后后分篇描述目前已經(jīng)比較成熟的語法特性例如和。同上,但返回該元素的索引號。和對象的屬性行為一致。不將參數(shù)強制轉(zhuǎn)行為。判斷是否為在范圍內(nèi)的正整數(shù)。不少層面的特性可以通過進行兼容性支持。 原文: http://pij.robinqu.me/JavaScript_Core/ECMAScript/es6/es6_api_extension.html 源...
閱讀 1791·2021-11-17 09:33
閱讀 3596·2021-11-16 11:40
閱讀 3110·2019-08-30 11:23
閱讀 1099·2019-08-29 16:36
閱讀 2521·2019-08-29 13:23
閱讀 1816·2019-08-29 12:59
閱讀 1605·2019-08-29 12:42
閱讀 2029·2019-08-28 18:22