搜尋
首頁微信小程式小程式開發ES6新特性開發微信小程式(4)

ES6新特性開發微信小程式(4)

Mar 25, 2017 pm 05:28 PM
小程式開發微信小程式微信開發

Symbol Type

ES6引進了一個新的原始資料型別Symbol,表示獨一無二的值。它是JavaScript語言的第七種資料類型,前六種是:Undefined、Null、布林值(Boolean)、字串(String)、數值(Number)、物件(Object)。

Symbol值透過Symbol函數產生。這就是說,物件的屬性名稱現在可以有兩種類型,一種是原來就有的字串,另一種就是新增的Symbol類型。凡是屬性名屬於Symbol類型,就都是獨一無二的,可以保證不會與其他屬性名產生衝突。

ES6新特性開發微信小程式(4)

Iterators(迭代器)

ES6迭代器不是內建的,透過使用[Symbol .iterator]()和.next()來進行建立。 Iterators(迭代器)是一種接口,為各種不同的資料結構提供統一的存取機制。任何資料結構只要部署Iterator接口,就可以完成遍歷操作(即依序處理該資料結構的所有成員)。

Iterator的作用:

為各種資料結構,提供一個統一的、簡單的存取介面;

使得資料結構的成員能夠按某種次序排列;

ES6創造了一種新的遍歷命令for...of循環,Iterator介面主要供for...of消費。

ES6新特性開發微信小程式(4)

#Set、Map資料結構

ES6提供了新的資料結構Set。它類似於數組,但是成員的值都是唯一的,沒有重複的值。

Set本身就是一個建構函數,用來產生Set資料結構。

ES6新特性開發微信小程式(4)

ES6提供了Map資料結構。它類似對象,也是鍵值對的集合,但是「鍵」的範圍不限於字串,各種類型的值(包括對象)都可以當作鍵。也就是說,Object結構提供了「字串—值」的對應,Map結構提供了「值—值」的對應,是一種更完善的Hash結構實作。如果你需要「鍵值對」的資料結構,Map比Object更適合。

ES6新特性開發微信小程式(4)

WeakSet結構與Set類似,也是不重複的值的集合。但WeakSet只能存物件類型的元素,例如:Object, Array, Function 等。 WeakSet中的對像都是弱引用,即垃圾回收機制不考慮WeakSet對該對象的引用,如果其他對像都不再引用該對象,那麼垃圾回收機制會自動回收該對象所佔用的內存,不考慮該對象還存在於WeakSet之中。有了弱引用的WeakSet, 就不用擔心記憶體洩漏了。

WeakSet物件的方法只有三個,WeakMap沒有size屬性:

add(): 新增元素到集合。

delete(): 從集中移除指定元素。

has(): 如果集包含指定的元素,則傳回 true。

ES6新特性開發微信小程式(4)

WeakMap結構與Map結構基本上類似,也是鍵值對的集合。但WeakMap只接受物件作為鍵名(null除外),不接受其他類型的值作為鍵名,而且鍵入所指向的對象,不計入垃圾回收機制。

WeakMap物件的方法,WeakMap沒有size屬性,WeakMap物件不能枚舉:

clear ():從WeakMap 移除所有元素。

delete(): 從 WeakMap 移除指定的元素。

get(): 從 WeakMap 傳回指定的元素。

has(): 如果 WeakMap 包含指定元素,則傳回 true。

set(): 新增元素至 WeakMap。

toString():傳回 WeakMap 的字串表示形式。

valueOf():傳回指定物件的原始值。

ES6新特性開發微信小程式(4)

Typed Arrays(類型化陣列)

類型化陣列(ArrayBuffer物件、TypedArray視圖和DataView檢視)是JavaScript操作二進位資料的一個介面。這些物件早就存在,屬於獨立的規格(2011年2月發布),ES6將它們納入了ECMAScript規格,並且增加了新的方法。

類型化陣列支援任意基於位元組的資料結構,更方便的實作網路協定、加密演算法、檔案格式操作等功能。

ArrayBuffer是一段不透明的記憶體區域(所謂不透明,就是無法直接操作的資料區塊),單位是位元組(Byte)也就是8位,它的byteLength屬性傳回其記憶體大小。

在ArrayBuffer上,可以使用不同的視圖來建立任意數量的類型化數組, 這些類型化數組也可以是重疊的。有八種不同的類型化陣列(視圖),分別為:

ES6新特性開發微信小程式(4)

#Int8Array: 1個位元組,8位元二進位帶符號整數-2^7~(2^7) - 1

#Uint8Array: 1個位元組,8位元無符號整數0~(2^8) - 1

Int16Array: 2個位元組,16位元二進位帶符號整數-2^15~(2^15)-1

Uint16Array : 2個位元組,16位元無符號整數0~(2^16) - 1

Int32Array: 4個位元組,32位元二進位帶符號整數-2^31~ (2^31)-1

Uint32Array: 4個位元組,32位元無符號整數0~(2^32) - 1

#Float32Array: 4個字節,32位元IEEE浮點數

#Float64Array: 8個位元組,64位元IEEE浮點數

ES6新特性開發微信小程式(4)

ES6新特性開發微信小程式(4)ES6新特性開發微信小程式(4)

#如果一段資料包含多種類型,這時除了建立ArrayBuffer物件的複合視圖以外,還可以透過DataView檢視進行操作。

DataView視圖提供更多操作選項,而且支援設定位元組序。

DataView本身也是建構函數,接受一個ArrayBuffer物件作為參數,產生視圖。

ES6新特性開發微信小程式(4)

以上是ES6新特性開發微信小程式(4)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器