關(guān)于ES6新特性最常用的知識點匯總
1.關(guān)鍵字
Let 關(guān)鍵字 在let所在的代碼塊中起作用。在let之前對于改該變量是不能進行賦值的
Const關(guān)鍵字 為只讀變量,因此在定義的時候就需要去賦值。
2.解構(gòu)
變量的解構(gòu),
1>.數(shù)組結(jié)構(gòu)利用[],對數(shù)組局部可以進行賦值
例如:
Let [a,,c]=[1,,3]
Let[a,…c]這里c可以當作一個數(shù)組進行賦值
2>.對象結(jié)構(gòu)利用{},對對象進行解構(gòu),與數(shù)組類似,不同的是,多了一個屬性的問題,最重要的是對象屬性沒有次序,而是按照次序來的。
3.字符串
1>. 利用for of 可以對字符串進行每一個字符進行遍歷。
2>. 對于判斷是否含有字符為:include startswith endwith
3>. Padstart。。。等等替換補全的函數(shù)
4>.字符串模板,可以在字符串里面${變量}來加上變量。也可以加上html的標簽
5>.數(shù)值大多是對函數(shù)的運行,判斷是否為數(shù)字,類型轉(zhuǎn)換等
4.正則
1>.兩種用法
One:Regex r=new Regex(‘匹配規(guī)則','修飾')
Two:Regex r=/匹配的東西/修飾
Regex 其中 I g y為修飾符
2>.sticky屬性 是否有修飾符
Flags 返回匹配修飾符
3>.支持為后行斷言
5.數(shù)組
1>.可以用const […a2]=a1直接進行賦值,兩個變量互換也是可以的
2>.利用[]可以進行多個數(shù)組合并
3>.與結(jié)解構(gòu)相結(jié)合
例如:
[a,…rest]=list list為數(shù)組
6.函數(shù)
1>.參數(shù)默認值的使用,不能有同名參數(shù)
2>.參數(shù)傳值為惰性求值,就是每次會重新計算默認值
3>.依舊可以使用解構(gòu)進行函數(shù)賦值,(個人認為類似于對象解構(gòu))
7.對象
在es6中的對象使用類似于C語言中最開始的struct類型,但有區(qū)別的是,在es6中對象內(nèi)部可以使用方法
例如:
Const person={ Name:wl; Birth, CalTime(){console.log(“”);}
8.Symbol
1>.相當于多出來的一種定義的關(guān)鍵字,防止定義的變量不小心被改寫和覆蓋。
2>.主要作用在于消除魔術(shù)字符串(個人理解:就是一堆字符串直接出來的,改成變量,提高代碼閱讀性吧)
9.集合
1>.個人理解:有點類似java、C#中的集合。只不過因為es6的特性,有一些不同的函數(shù)實現(xiàn)復雜的操作。Set可以轉(zhuǎn)變?yōu)閿?shù)組,進行一些解構(gòu)操作。
在這里多了一種加上前綴weak的集合,(這個就是臨時堆放東西的地方,說沒就沒,因此也不能遍歷)
10.Proxy配合Reflect的觀察者模式
Proxy為攔截操作,Reflect就是反射操作,讀取變量進行修改。
Proxy監(jiān)測發(fā)生改變,進行攔截操作,reflect進行取值更改,實現(xiàn)最簡單的觀察模式
11. Promise
為構(gòu)造函數(shù),可以回調(diào)兩個函數(shù)。(個人理解:對于有兩種結(jié)果的情況更為使用,出現(xiàn)不同的情況調(diào)用不同的函數(shù)進行使用)
ArrayBuffer也是一種構(gòu)造器,利用多種函數(shù)操作,個人感覺為了規(guī)范數(shù)組。
12.遍歷器
遍歷器模擬next,進行指針的移動,直到結(jié)束。在es6中跟我之前用的C,C++這些語言不同的是,他到結(jié)束了,會輸出undefined,不會直接崩掉程序。
next: function() { return nextIndex < array.length ? {value: array[nextIndex++], done: false} : {value: undefined, done: true};//不斷增加nextIndex,就是讓下標自加操作。
13.Generator
本質(zhì)為記錄函數(shù)內(nèi)部狀態(tài),異步操作,個人感覺應該在多線程中應用較多。單線程沒有想到應用的價值。本質(zhì)上使用yield進行暫緩操作,可以不用yield,直接用*將函數(shù)變成暫緩執(zhí)行的函數(shù)。
14.async
本質(zhì)上來說是Generator的一種改進操作,他不采用yield進行暫緩操作,而是使用await進行該操作。但他與Geneator有所區(qū)別,在于返回的不同,Geneator返回遍歷器,他返回的是Promise對象
15.Class
他對于原本的js語言來說,類的操作,將很多東西進行了封裝,有一定的模板,為了更好的進行閱讀理解,加上繼承,也減少了重復代碼的書寫。并且模式為嚴格模式,對于語言的規(guī)范性更高。跟面向?qū)ο笳Z言中的class有些類似。
16.修飾器
這種寫法類似于java的注解,但是方式卻又所不同。個人理解java的注解是為了代碼的規(guī)法并且易于修改。但在es6中,修飾器本質(zhì)就是編譯時執(zhí)行的函數(shù)。
17.Moudle
將一些靜態(tài)編譯的東西模塊化,減少重復編寫吧,就類似python引入多種庫那樣,什么東西引入一些庫,編寫就相對不復雜。
import { stat, exists, readFile } from 'fs';//引入 export {firstName, lastName, year};//輸出
總結(jié)
到此這篇關(guān)于ES6新特性最常用的知識點匯總的文章就介紹到這了,更多相關(guān)ES6新特性知識點內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
javascript框架設(shè)計讀書筆記之模塊加載系統(tǒng)
本文是司徒正美的《javascript框架設(shè)計》的第二章模塊加載系統(tǒng)的讀書筆記,根據(jù)自己的理解,簡要的跟大家講述了本章的主要內(nèi)容,方便大家更好的學習。2014-12-12js操作數(shù)據(jù)庫實現(xiàn)注冊和登陸的簡單實例
下面小編就為大家?guī)硪黄猨s操作數(shù)據(jù)庫實現(xiàn)注冊和登陸的簡單實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-05-05JS實現(xiàn)密碼框根據(jù)焦點的獲取與失去控制文字的消失與顯示效果
這篇文章主要介紹了JS實現(xiàn)密碼框根據(jù)焦點的獲取與失去控制文字的消失與顯示效果,可實現(xiàn)使用JavaScript判斷密碼框是否獲得焦點來隱藏與顯示提示文字,非常簡單實用,需要的朋友可以參考下2015-11-11javascript ready和load事件的區(qū)別示例介紹
ready是在DOM加載完成就觸發(fā);load是在加載完所有頁面內(nèi)容才會觸發(fā),下為大家簡要介紹下,不知道的朋友可以參考下2013-08-08Javascript基礎(chǔ)教程之比較null和undefined值
這篇文章主要介紹了Javascript基礎(chǔ)教程之比較null和undefined值的相關(guān)知識,非常不錯,具有參考借鑒價值,感興趣的朋友一起學習吧2016-05-05bootstrap tooltips在 angularJS中的使用方法
這篇文章主要介紹了bootstrap tooltips在 angularJS中的使用 ,需要的朋友可以參考下2019-04-04