ES6總結(jié)文檔

數(shù)組的拓展方法:

arr.keys()方法: 獲取數(shù)組的所有索引值?chrome沒有實現(xiàn)

arr.values()方法: 獲取數(shù)組的所有成員值chrome沒有實現(xiàn)

arr.entries()方法:

作用: ? 獲取數(shù)組所有索引值以及成員值

返回: ?數(shù)組迭代器對象

使用for fo方法遍歷此對象可獲得數(shù)組

第一個成員表示索引值

第二個成員表示成員值

數(shù)組迭代器特征:

遍歷數(shù)組迭代器內(nèi)容,?只能使用for of方法, ?for循環(huán), ?for in無效

可以通過next方法包含每一個值的對象

數(shù)組迭代器只能被獲取一次

對象的復(fù)制:

jq中的extend(any)方法:

作用: jQuery中復(fù)制對象的方法

參數(shù): @any ? ?如果是true表示深復(fù)制(此時后面的參數(shù)表示需要復(fù)制的對象,可多個), ? 如果是對象表示淺復(fù)制

返回值: ?復(fù)制的對象(如果復(fù)制的是多個對象, ?多個對象會合并到一起)

window.assign(obj1, ?obj2...)方法: ? (淺復(fù)制)

作用: 擴(kuò)展對象, 將別的對象的值復(fù)制給目標(biāo)對象

參數(shù):

@obj1 ? ?目標(biāo)對象

@obj2... 被復(fù)制的對象(可多個) ??

返回值: ?拓展后的目標(biāo)對象(@obj1), 若有同名屬性, 后面的覆蓋前面的

Symbol數(shù)據(jù)類型: ? ? ?ES6新增數(shù)據(jù)類型

應(yīng)用: ??為一個庫添加屬性魏烫、方法, ?是很危險的,原因新增的屬性崔兴、方法可能會替換掉原有的屬性或者方法五督,原理就是名稱可能會同名藏否,es6新增symbol數(shù)據(jù)類型是為了解決這個問題,通過symbol新增的屬性是永遠(yuǎn)不會同名的

使用Symbol類型的值不會被覆蓋:

語法: var ?key = ?Symbol(value)

注意: ?一旦通過Symbol類型為對象添加屬性, 訪問這個屬性值,?只能通過變量名訪問

例如: ?{Symbol(value): "red"}, ??

訪問屬性值只能使用obj[key], ?key表示Symebol(value)的變量名

obj[Symbol(value)]?這種寫法訪問不到該屬性

代理對象:

應(yīng)用: ? 不允許用戶直接訪問一些隱私數(shù)據(jù), 而是通過代理對象訪問, 通過代理對象屏蔽一些危險操作.

創(chuàng)建代理對象:?new Proxy(obj, configObj)? ??

@obj ?被代理的對象

@dealObj ? 處理代理對象的接口方法對象

get(obj, ?key) ? ?用戶獲取對象屬性時的處理方法

@obj ? ?被代理的對象

@key ? ?獲取的屬性名

set(obj, key, value) ? 用戶設(shè)置對象屬性時的處理方法

@obj ? 被代理的對象

@key ? 被設(shè)置的對象屬性名稱

@value ?用戶設(shè)置的屬性值?

默認(rèn)參數(shù):

ES6允許我們在參數(shù)中使用賦值符號充包,定義默認(rèn)參數(shù)

例如: ? function drawColor(color?=?'green'){}

獲取剩余參數(shù):

應(yīng)用: ?箭頭函數(shù)中不能使用arguments, ?可以使用...arg語法代替

語法:?...arg

例如: ?function ?drawColor(color1, color2, ...color){}

前面的參數(shù)可以正常使用

獲取的color變量是一個數(shù)組

解構(gòu):

解構(gòu)對象:

作用: ?直接使用變量名調(diào)用對象的屬性

語法:?var {屬性名稱} = 對象

大括號內(nèi)的屬性名稱必須要與對象的屬性名稱一致

例如: ?var {Model, Controller, View} = Backbone;

解構(gòu)數(shù)組:

作用: 可以將一個數(shù)組的每個成員轉(zhuǎn)化成函數(shù)參數(shù)

語法: ?var [變量1, 變量2, ...變量們] = 數(shù)組

每個變量表示一個成員

如果想獲取所有剩余成員可以使用...語法,獲得的是一個數(shù)組

例如: var [color1, color2, ...color] = ["red", "green", "blue", "pink"] ;

箭頭函數(shù):

定義語法:??() => {}? ??

() 內(nèi)定義參數(shù)集合

=>箭頭

{} 函數(shù)體

特征:

不能使用arguments

作用域和箭頭函數(shù)所在的作用域一致

不能作為構(gòu)造函數(shù)使用(因為第二條)

省略:

只有一個參數(shù), 小括號可以省略

函數(shù)體只有返回值, 大括號可以省略, return可以省略

更改作用域: ?只能更改箭頭函數(shù)所在的作用域, 來達(dá)到更改箭頭函數(shù)作用域的目的

Set對象:

ES6中聚合類數(shù)據(jù)一共有四種: 數(shù)組副签、對象、set對象基矮、map對象

創(chuàng)建set對象:

語法:new Set(arr);

參數(shù): ?@arr是一個數(shù)組, 會自動對數(shù)組中每一個成員去重

返回: ?set實例化對象

add(any)方法:

作用: ?為set對象添加成員

參數(shù): ?只能接收一個參數(shù), 表示添加的成員, ?會自動去重

返回值: ? set對象, 因此可以鏈?zhǔn)秸{(diào)用

delete(any)方法:

作用: ?刪除set對象的成員

參數(shù): 只能接收一個參數(shù), 表示刪除的成員

返回值: ?布爾值, true表示刪除成功

has(any)方法:

作用: ?查詢是否擁有某個成員

參數(shù): ?只能接收一個參數(shù), 表示查詢的成員

返回值: 布爾值, true表示存在

clear()方法:

作用: 清空set對象

forEach(fn)方法:?此方法的回調(diào)函數(shù)的參數(shù)和全局的forEach不一樣

作用: 遍歷set對象

參數(shù): ?@fn 回調(diào)函數(shù)

參數(shù)1 ?表示值

參數(shù)2 ?表示值

參數(shù)3 ?表示set對象

返回值: ?undefined

size()方法: ?獲取對象長度

set對象實現(xiàn)了迭代器接口, 所以可以通過for of遍歷

WeakSet對象:?弱set對象, 因為不能被內(nèi)存回收機(jī)制回收, 所以不建議使用

Map對象:

作用: ?Map對象是對象的擴(kuò)展,?允許屬性名稱是任何類型, 如: null淆储、undefined、數(shù)字等等

創(chuàng)建Map對象:

語法:new Map()

對象方法:

set(key, value)方法:

作用: 為map對象添加新屬性

參數(shù): @key ?屬性名稱 ?@value ?屬性值

返回值: ?map對象, 因此可以鏈?zhǔn)秸{(diào)用

get(key)方法:

作用: 獲取map對象中某個屬性值

參數(shù): @key 屬性名稱

返回值: ?@key的屬性值

clear()方法: 清空map對象

has(key)方法:

作用: ?判斷某個屬性值是否存在

參數(shù): ?@key ?屬性名稱

返回值: ?布爾值, ?true表示存在

delete(key)方法:

作用: 刪除謳歌屬性值

參數(shù): @key ?屬性名稱

返回值: 布爾值, ?true表示刪除成功

forEach(fn)方法:

作用: 遍歷map對象

參數(shù): @fn ?回調(diào)函數(shù)

參數(shù)1 ? value

參數(shù)2 ? key

參數(shù)3 ? map對象

作用域: ?全局

size(): ?獲取長度

WeakMap對象:弱map對象, 不能被內(nèi)存回收機(jī)制回收, 少用

迭代器:

ES6中實現(xiàn)了迭代器接口, 但是沒有實現(xiàn)迭代器對象Iterator

迭代器應(yīng)用:

數(shù)據(jù)解構(gòu)愈捅、數(shù)組解構(gòu)遏考、對象解構(gòu)

定義map對象、set對象

使用for of循環(huán)

實現(xiàn)了迭代器接口的數(shù)據(jù)(實現(xiàn)迭代器接口的特征是能否實現(xiàn)for of循環(huán))

Generator函數(shù):

作用: ? 儲存狀態(tài)

語法: ?function * 函數(shù)名稱() {}

定義狀態(tài):

語法: yield ?狀態(tài)內(nèi)容;

每一個yield定義一個狀態(tài), 最后一個狀態(tài)用return定義

函數(shù)運行后得到一個狀態(tài)對象:

狀態(tài)對象實現(xiàn)了迭代器接口, 因此可以通過for of循環(huán)遍歷, 但遍歷不到最后一個狀態(tài)(return)

可以使用next訪問狀態(tài)

返回值: 一個對象

done表示是否完成遍歷

value表示狀態(tài)的值

例子:

// 定義generator函數(shù)

function?*?dayState?()?{

// 定義狀態(tài)

yield?'睜眼';

yield?'砸鬧鐘';

yield?'接著再睡';

yield?'再睜眼';

yield?'起來了';

yield?'上學(xué)';

yield?'學(xué)習(xí)';

// 睡覺是最后一個狀態(tài)

return?'睡覺';

}

// 使用generator函數(shù)必須執(zhí)行

var?ds?=?dayState();

// 訪問狀態(tài)

console.log(ds.next())

Promise對象: ?允諾對象

作用:?將一部操作轉(zhuǎn)化成同步的寫法

promise對象內(nèi)部維護(hù)一個狀態(tài), ?有三種情況:

rending ? ?異步執(zhí)行的操作還沒有接觸

resolved ? 異步操作已經(jīng)執(zhí)行完成

rejected ? ?異步操作執(zhí)行失敗

promise三種情況, 只能存在兩種狀態(tài)的轉(zhuǎn)化, ?因此只能出現(xiàn)兩個狀態(tài):

pending ?進(jìn)入 resolved, ?異步操作執(zhí)行成功

pending ?進(jìn)入 rejected, ? 異步操作執(zhí)行失敗

創(chuàng)建對象:?new Promise(fn);

參數(shù): @fn ?回調(diào)函數(shù)

參數(shù)1(一般命名為resolve) ?用來將pending狀態(tài)轉(zhuǎn)換成resolved狀態(tài)

參數(shù)2(一般命名為reject) ? ? 用來將pending狀態(tài)轉(zhuǎn)換成rejected狀態(tài)

作用域: ?全局

在回調(diào)函數(shù)中執(zhí)行異步操作,當(dāng)執(zhí)行完畢, 會觸發(fā)相應(yīng)的狀態(tài)改變

可以在promise實例化對象中通過then方法綁定回調(diào)函數(shù)

then(successFn, errFn)方法:

作用: ?觸發(fā)狀態(tài)是做的事

參數(shù):

@successFn成功時執(zhí)行的回調(diào)函數(shù)

@errFn ? ? ? ? ? ?失敗時執(zhí)行的回調(diào)函數(shù)

這兩個回調(diào)函數(shù)的參數(shù)是執(zhí)行resolve或reject方法時傳遞的參數(shù)

all方法:

作用: ?監(jiān)聽多個允諾對象

如果一個失敗了就立即執(zhí)行失敗回調(diào)函數(shù)

如果都成功了, 執(zhí)行成功時的回調(diào)函數(shù)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蓝谨,一起剝皮案震驚了整個濱河市灌具,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌譬巫,老刑警劉巖咖楣,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異芦昔,居然都是意外死亡诱贿,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來珠十,“玉大人料扰,你說我怎么就攤上這事”翰洌” “怎么了晒杈?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長孔厉。 經(jīng)常有香客問我拯钻,道長,這世上最難降的妖魔是什么撰豺? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任粪般,我火速辦了婚禮,結(jié)果婚禮上污桦,老公的妹妹穿的比我還像新娘亩歹。我一直安慰自己,他們只是感情好寡润,可當(dāng)我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布捆憎。 她就那樣靜靜地躺著,像睡著了一般梭纹。 火紅的嫁衣襯著肌膚如雪躲惰。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天变抽,我揣著相機(jī)與錄音础拨,去河邊找鬼。 笑死绍载,一個胖子當(dāng)著我的面吹牛诡宗,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播击儡,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼塔沃,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了阳谍?” 一聲冷哼從身側(cè)響起蛀柴,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎矫夯,沒想到半個月后鸽疾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡训貌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年尝盼,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片腺阳。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖一忱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布意乓,位于F島的核電站,受9級特大地震影響约素,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜笆凌,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一圣猎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧乞而,春花似錦送悔、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至屋灌,卻和暖如春洁段,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背共郭。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工祠丝, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人除嘹。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓写半,卻偏偏與公主長得像,于是被迫代替她去往敵國和親尉咕。 傳聞我的和親對象是個殘疾皇子叠蝇,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,979評論 2 355

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

  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時...
    歐辰_OSR閱讀 29,392評論 8 265
  • [TOC] 參考阮一峰的ECMAScript 6 入門參考深入淺出ES6 let和const let和const都...
    郭子web閱讀 1,781評論 0 1
  • 10 德國戰(zhàn)斧:戈麥斯國家隊:德國 位置:中鋒 身高/體重189cm/89Kg 戈麥斯是典型的德國中鋒,能進(jìn)攻搶點...
    Ace的源代碼閱讀 1,182評論 0 0
  • ?圖 / 夢的子民 文 / 夢的子民 梁博的《靈魂歌手》,歌詞說:靈魂歌手開唱瞬間晦款,能擊碎萬顆心炎功,他不屬于瞬間,他...
    閱己暖華閱讀 953評論 0 1
  • 你有沒有愛過一個遙遠(yuǎn)的人缓溅? 他(她)從來都不讓你絕望蛇损,是你繼續(xù)生活下去的勇氣和力量。 從相遇相知的那天起,他(她)...
    閑庭絮閱讀 406評論 8 5