ES6 新增的知識(shí)點(diǎn)

聲明:let 和const ,(1)沒(méi)有變量提升 (2)不能重新賦值 (3)有塊級(jí)作用域
(4) let 可以重復(fù)賦值 , const不能重復(fù)賦值

對(duì)象的三個(gè)方法:

  • Object.keys( obj ) 獲得對(duì)象中的所有的鍵,以數(shù)組的形式返回
  • Object.values( obj ) 獲得對(duì)象中的所有的屬性的值,以數(shù)組的形式返回
  • Object.entries( obj ) 獲得對(duì)象中所有的成員,以數(shù)組的形式返回,數(shù)組的每個(gè)元素是對(duì)象的鍵 和 值組成的數(shù)組
  • Object.assign(target,source) 把源對(duì)象復(fù)制到目標(biāo)對(duì)象,返回目標(biāo)對(duì)象

數(shù)值的擴(kuò)展

ES6 在Number對(duì)象上院溺,新提供了Number.isFinite()和Number.isNaN()兩個(gè)方法们镜。

  • Number.isFinite(), 用來(lái)檢查一個(gè)數(shù)值是否為有限的(finite)梦重,即不是Infinity
    如果參數(shù)類(lèi)型不是數(shù)值炊甲,Number.isFinite一律返回false。只對(duì)數(shù)值有效
Number.isFinite(15); // true
Number.isFinite(0.8); // true
Number.isFinite(NaN); // false
Number.isFinite(Infinity); // false
Number.isFinite(-Infinity); // false
Number.isFinite('foo'); // false
Number.isFinite('15'); // false
Number.isFinite(true); // false
  • Number.isNaN() , 用來(lái)檢查一個(gè)值是否為NaN衔沼。如果參數(shù)類(lèi)型不是NaN蝌借,Number.isNaN一律返回false。只對(duì)數(shù)值有效
Number.isNaN(NaN) // true
Number.isNaN(15) // false
Number.isNaN('15') // false
Number.isNaN(true) // false
Number.isNaN(9/NaN) // true
Number.isNaN('true' / 0) // true
Number.isNaN('true' / 'true') // true
  • Number.parseInt(), Number.parseFloat()
    ES6 將全局方法parseInt()和parseFloat()指蚁,移植到Number對(duì)象上面菩佑,行為完全保持不變。
// ES5的寫(xiě)法
parseInt('12.34') // 12
parseFloat('123.45#') // 123.45

// ES6的寫(xiě)法
Number.parseInt('12.34') // 12
Number.parseFloat('123.45#') // 123.45

// 這樣做的目的凝化,是逐步減少全局性方法稍坯,使得語(yǔ)言逐步模塊化。
Number.parseInt === parseInt // true
Number.parseFloat === parseFloat // true
  • BigInt 數(shù)據(jù)類(lèi)型

字符串的方法:

  • str.includes() 找到str中包含某個(gè)字符,返回true,找不到返回false
let str = 'hello'
console.log(str.includes('e'))   // true
  • str.startWith(參數(shù)1,參數(shù)2) 如果str以指定字符串開(kāi)頭,返回true,否則返回false, 參數(shù)1:指定字符串 參數(shù)2:開(kāi)始搜索的位置
一般用來(lái)判斷是否以'http://'開(kāi)頭或者以'file://' 開(kāi)頭
let str = 'hello'
console.log(str.startWith('h'))   // true
  • str.endWith(參數(shù)1,參數(shù)2) 如果字符串以指定字符串結(jié)尾,返回true,否則,返回false,參數(shù)1:指定字符串 參數(shù)2:開(kāi)始搜索的位置,從后往前搜索
一般判斷這個(gè)字符串是不是以 '.png' '.jpg' 等這種
let str = 'hello'
console.log(str.endWith('o'))   // true
  • 字符串的pad()方法,補(bǔ)全字符串
    str.padStart(參數(shù)1,參數(shù)2) 在字符串的前面補(bǔ)齊,參數(shù)1:字符串的總位數(shù),參數(shù)2:用什么補(bǔ)全
    str.padEnd(參數(shù)1,參數(shù)2) 在字符串的后面補(bǔ)齊,參數(shù)1:字符串的總長(zhǎng)度,參數(shù)2:用什么補(bǔ)全
  • repeat方法返回一個(gè)新字符串搓劫,表示將原字符串重復(fù)n次瞧哟。
'x'.repeat(3) // "xxx"
'hello'.repeat(2) // "hellohello"
'na'.repeat(0) // ""
  • trimStart(),trimEnd()
ES2019對(duì)字符串實(shí)例新增了`trimStart()`和`trimEnd()`這兩個(gè)方法枪向。
它們的行為與`trim()`一致勤揩,`trimStart()`消除字符串頭部的空格,`trimEnd()`消除尾部的空格秘蛔。
它們返回的都是新字符串陨亡,不會(huì)修改原始字符串傍衡。

const s = '  abc  ';
s.trim() // "abc"
s.trimStart() // "abc  "
s.trimEnd() // "  abc"
  • matchAll(), 返回一個(gè)正則表達(dá)式在當(dāng)前字符串的所有匹配

數(shù)組的擴(kuò)展:

Array.of() 用于將一組值,轉(zhuǎn)換成數(shù)組. eg:Array.of(3, 11, 8) // [3,11,8]

數(shù)組的方法:

every() 遍歷數(shù)組的每一項(xiàng),如果每一項(xiàng)都滿足條件,則會(huì)返回true,不會(huì)改變?cè)瓟?shù)組
some() 遍歷數(shù)組的每一項(xiàng),如果任何一項(xiàng)滿足條件,則會(huì)返回true,不會(huì)改變?cè)瓟?shù)組
filter() 遍歷數(shù)組中的每一項(xiàng),返回一個(gè)符合條件的數(shù)組
forEach() 遍歷數(shù)組的每一項(xiàng),沒(méi)有返回值,無(wú)論怎樣,返回的都是undefined,不會(huì)通過(guò)return或者
break跳出循環(huán),也不會(huì)改變?cè)亟M
map() 不改變?cè)瓟?shù)組,返回一個(gè)新數(shù)組
find() 返回?cái)?shù)組中第一個(gè)符合條件的元素,如果沒(méi)有符合條件的,就返回undefined

for in 遍對(duì)象中的每個(gè)鍵(屬性名)
for of 可以用來(lái)遍歷字符串中的每個(gè)字符

set 和數(shù)組類(lèi)似 常用于數(shù)組去重
1.聲明 let set = new Set();即創(chuàng)建了一個(gè)空的set
2.賦值 let set = new Set(['張三','李四','王五']); 實(shí)例化一個(gè)set對(duì)象,并賦值
3.有數(shù)組去重的作用 let set = new Set(['張三','李四','王五','張三','李四'])
輸出結(jié)果還是 張三,李四负蠕,王五
set.add() 在set中新增一個(gè)元素
set.delete() 刪除一個(gè)元素,返回true或者false
set.has() 判斷set中是否有某個(gè)元素,返回true或者false
set.clear() 清除set集合中的所有元素,沒(méi)有返回值

正則表達(dá)式(regular expression)

async 和 await:

使用async/await來(lái)發(fā)送異步請(qǐng)求,從服務(wù)端獲取數(shù)據(jù),代碼簡(jiǎn)潔

async的用法:
它作為一個(gè)關(guān)鍵字放到函數(shù)的前面,表示該函數(shù)是一個(gè)異步函數(shù),因?yàn)閍sync就是異步的意思
異步函數(shù)也就意味著該函數(shù)的執(zhí)行不會(huì)阻塞后面代碼的執(zhí)行
調(diào)用異步函數(shù)的方法與調(diào)用普通函數(shù)的方法一樣,直接函數(shù)名加括號(hào)就調(diào)用了
async函數(shù)返回是一個(gè)promise對(duì)象,如果想要獲取到promise返回值,調(diào)用異步函數(shù)時(shí)后面接著.then,如果函數(shù)內(nèi)部拋出錯(cuò)誤,promise對(duì)象有一個(gè)catch方法進(jìn)行捕獲,用法與then一樣

await關(guān)鍵字只能放到async函數(shù)里面,await后面放一個(gè)返回promise對(duì)象的表達(dá)式
在async函數(shù)里面遇到await后,代碼就不往下執(zhí)行了,等待await后面的promise對(duì)象執(zhí)行完畢,并且拿到promise resolve的值并返回,返回值拿到后,它才繼續(xù)向下執(zhí)行

如果async 函數(shù)中有返回一個(gè)值 ,當(dāng)調(diào)用該函數(shù)時(shí)蛙埂,內(nèi)部會(huì)調(diào)用Promise.resolve() 方法把它轉(zhuǎn)化成一個(gè)promise 對(duì)象作為返回
但是如果async函數(shù)內(nèi)部拋出錯(cuò)誤,那么就會(huì)調(diào)用Promise.reject()返回一個(gè)promise對(duì)象

es6 對(duì)象的深復(fù)制與淺復(fù)制
如果把對(duì)象a賦值給b,改動(dòng)了b的數(shù)據(jù),那么也會(huì)a的數(shù)據(jù)也會(huì)相應(yīng)的改變,因?yàn)閍和b都指向的是同一個(gè)地址,a===b,這就是深復(fù)制,復(fù)制的不僅僅是數(shù)據(jù),而且連地址也一起復(fù)制過(guò)來(lái)了

淺復(fù)制,用...的語(yǔ)法,原理其實(shí)是:利用for in 把對(duì)象a中的屬性拷貝給b,只拷貝了一個(gè)副本,當(dāng)修改對(duì)象b的值是不會(huì)改變對(duì)象a的值的
let b = {...a} 淺復(fù)制a賦值給b,不會(huì)復(fù)制地址

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市遮糖,隨后出現(xiàn)的幾起案子绣的,更是在濱河造成了極大的恐慌,老刑警劉巖止吁,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件被辑,死亡現(xiàn)場(chǎng)離奇詭異燎悍,居然都是意外死亡敬惦,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)谈山,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)俄删,“玉大人,你說(shuō)我怎么就攤上這事奏路〕胍” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵鸽粉,是天一觀的道長(zhǎng)斜脂。 經(jīng)常有香客問(wèn)我,道長(zhǎng)触机,這世上最難降的妖魔是什么帚戳? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮儡首,結(jié)果婚禮上片任,老公的妹妹穿的比我還像新娘。我一直安慰自己蔬胯,他們只是感情好对供,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著氛濒,像睡著了一般产场。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上舞竿,一...
    開(kāi)封第一講書(shū)人閱讀 51,541評(píng)論 1 305
  • 那天涝动,我揣著相機(jī)與錄音,去河邊找鬼炬灭。 笑死醋粟,一個(gè)胖子當(dāng)著我的面吹牛靡菇,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播米愿,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼厦凤,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了育苟?” 一聲冷哼從身側(cè)響起较鼓,我...
    開(kāi)封第一講書(shū)人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎违柏,沒(méi)想到半個(gè)月后博烂,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡漱竖,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年禽篱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片馍惹。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡躺率,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出万矾,到底是詐尸還是另有隱情悼吱,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布良狈,位于F島的核電站后添,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏薪丁。R本人自食惡果不足惜遇西,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望窥突。 院中可真熱鬧努溃,春花似錦、人聲如沸阻问。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)称近。三九已至第队,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間刨秆,已是汗流浹背凳谦。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留衡未,地道東北人尸执。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓家凯,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親如失。 傳聞我的和親對(duì)象是個(gè)殘疾皇子绊诲,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 本文為阮一峰大神的《ECMAScript 6 入門(mén)》的個(gè)人版提純! babel babel負(fù)責(zé)將JS高級(jí)語(yǔ)法轉(zhuǎn)義褪贵,...
    Devildi已被占用閱讀 1,985評(píng)論 0 4
  • [TOC] 參考阮一峰的ECMAScript 6 入門(mén)參考深入淺出ES6 let和const let和const都...
    郭子web閱讀 1,781評(píng)論 0 1
  • 含義 async函數(shù)是Generator函數(shù)的語(yǔ)法糖掂之,它使得異步操作變得更加方便。 寫(xiě)成async函數(shù)脆丁,就是下面這...
    oWSQo閱讀 1,993評(píng)論 0 2
  • 前面的話 ES2017標(biāo)準(zhǔn)引入了async 函數(shù)世舰,使得異步操作變得更加方便。本文將詳細(xì)介紹async函數(shù) 概述 a...
    CodeMT閱讀 1,343評(píng)論 0 3
  • let ES6新增的用于變量聲明的關(guān)鍵字 通過(guò)let聲明的變量槽卫,不允許重復(fù)聲明 不支持變量聲明預(yù)解析跟压,let變量,...
    年過(guò)古稀的Coder閱讀 293評(píng)論 0 1