關於ES6新特性最常用的知識點匯總
1.關鍵字
Let 關鍵字 在let所在的代碼塊中起作用。在let之前對於改該變量是不能進行賦值的
Const關鍵字 為隻讀變量,因此在定義的時候就需要去賦值。
2.解構
變量的解構,
1>.數組結構利用[],對數組局部可以進行賦值
例如:
Let [a,,c]=[1,,3]
Let[a,…c]這裡c可以當作一個數組進行賦值
2>.對象結構利用{},對對象進行解構,與數組類似,不同的是,多瞭一個屬性的問題,最重要的是對象屬性沒有次序,而是按照次序來的。
3.字符串
1>. 利用for of 可以對字符串進行每一個字符進行遍歷。
2>. 對於判斷是否含有字符為:include startswith endwith
3>. Padstart。。。等等替換補全的函數
4>.字符串模板,可以在字符串裡面${變量}來加上變量。也可以加上html的標簽
5>.數值大多是對函數的運行,判斷是否為數字,類型轉換等
4.正則
1>.兩種用法
One:Regex r=new Regex(‘匹配規則’,’修飾’)
Two:Regex r=/匹配的東西/修飾
Regex 其中 I g y為修飾符
2>.sticky屬性 是否有修飾符
Flags 返回匹配修飾符
3>.支持為後行斷言
5.數組
1>.可以用const […a2]=a1直接進行賦值,兩個變量互換也是可以的
2>.利用[]可以進行多個數組合並
3>.與結解構相結合
例如:
[a,…rest]=list list為數組
6.函數
1>.參數默認值的使用,不能有同名參數
2>.參數傳值為惰性求值,就是每次會重新計算默認值
3>.依舊可以使用解構進行函數賦值,(個人認為類似於對象解構)
7.對象
在es6中的對象使用類似於C語言中最開始的struct類型,但有區別的是,在es6中對象內部可以使用方法
例如:
Const person={ Name:wl; Birth, CalTime(){console.log(“”);}
8.Symbol
1>.相當於多出來的一種定義的關鍵字,防止定義的變量不小心被改寫和覆蓋。
2>.主要作用在於消除魔術字符串(個人理解:就是一堆字符串直接出來的,改成變量,提高代碼閱讀性吧)
9.集合
1>.個人理解:有點類似java、C#中的集合。隻不過因為es6的特性,有一些不同的函數實現復雜的操作。Set可以轉變為數組,進行一些解構操作。
在這裡多瞭一種加上前綴weak的集合,(這個就是臨時堆放東西的地方,說沒就沒,因此也不能遍歷)
10.Proxy配合Reflect的觀察者模式
Proxy為攔截操作,Reflect就是反射操作,讀取變量進行修改。
Proxy監測發生改變,進行攔截操作,reflect進行取值更改,實現最簡單的觀察模式
11. Promise
為構造函數,可以回調兩個函數。(個人理解:對於有兩種結果的情況更為使用,出現不同的情況調用不同的函數進行使用)
ArrayBuffer也是一種構造器,利用多種函數操作,個人感覺為瞭規范數組。
12.遍歷器
遍歷器模擬next,進行指針的移動,直到結束。在es6中跟我之前用的C,C++這些語言不同的是,他到結束瞭,會輸出undefined,不會直接崩掉程序。
next: function() { return nextIndex < array.length ? {value: array[nextIndex++], done: false} : {value: undefined, done: true};//不斷增加nextIndex,就是讓下標自加操作。
13.Generator
本質為記錄函數內部狀態,異步操作,個人感覺應該在多線程中應用較多。單線程沒有想到應用的價值。本質上使用yield進行暫緩操作,可以不用yield,直接用*將函數變成暫緩執行的函數。
14.async
本質上來說是Generator的一種改進操作,他不采用yield進行暫緩操作,而是使用await進行該操作。但他與Geneator有所區別,在於返回的不同,Geneator返回遍歷器,他返回的是Promise對象
15.Class
他對於原本的js語言來說,類的操作,將很多東西進行瞭封裝,有一定的模板,為瞭更好的進行閱讀理解,加上繼承,也減少瞭重復代碼的書寫。並且模式為嚴格模式,對於語言的規范性更高。跟面向對象語言中的class有些類似。
16.修飾器
這種寫法類似於java的註解,但是方式卻又所不同。個人理解java的註解是為瞭代碼的規法並且易於修改。但在es6中,修飾器本質就是編譯時執行的函數。
17.Moudle
將一些靜態編譯的東西模塊化,減少重復編寫吧,就類似python引入多種庫那樣,什麼東西引入一些庫,編寫就相對不復雜。
import { stat, exists, readFile } from 'fs';//引入 export {firstName, lastName, year};//輸出
總結
到此這篇關於ES6新特性最常用的知識點匯總的文章就介紹到這瞭,更多相關ES6新特性知識點內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- JavaScript Generator異步過度的實現詳解
- Node.js中的異步生成器與異步迭代詳解
- 詳解ES9的新特性之異步遍歷Async iteration
- 詳解ES6 中的迭代器和生成器
- JavaScript前端迭代器Iterator與生成器Generator講解