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