Day15 ES6基礎(chǔ)

this的應(yīng)用及指向問(wèn)題

this是Javascript語(yǔ)言的一個(gè)關(guān)鍵字视译。它代表函數(shù)運(yùn)行時(shí)院水,自動(dòng)生成的一個(gè)內(nèi)部對(duì)象,只能在函數(shù)內(nèi)部使用屋摔。隨著函數(shù)使用場(chǎng)合的不同烁设,this的值會(huì)發(fā)生變化。但是有一個(gè)總的原則,那就是this指的是調(diào)用函數(shù)的那個(gè)對(duì)象装黑。
this的使用情況:
1副瀑、作為普通函數(shù)調(diào)用,這時(shí)函數(shù)屬于全局性調(diào)用恋谭,因此this就代表全局對(duì)象window糠睡。
2、作為對(duì)象方法的調(diào)用疚颊,這時(shí)this就指這個(gè)當(dāng)前對(duì)象狈孔。(事件處理函數(shù)同理)
3、作為構(gòu)造函數(shù)調(diào)用材义,所謂構(gòu)造函數(shù)均抽,就是通過(guò)這個(gè)函數(shù)生成一個(gè)新對(duì)象(實(shí)例)。這時(shí)其掂,this就指這個(gè)新對(duì)象(實(shí)例)油挥。
4、apply 款熬、 call 喘漏、bind的介紹(函數(shù)的方法)
apply 、 call 华烟、bind 三者都是用來(lái)改變函數(shù)的this對(duì)象的指向的;第一個(gè)參數(shù)都是this要指向的對(duì)象持灰,也就是想指定的上下文盔夜;從第二個(gè)參數(shù)開始,就是函數(shù)的本身的參數(shù)堤魁;
但bind 是返回對(duì)應(yīng)函數(shù)喂链,便于稍后調(diào)用;apply 妥泉、call 則是立即調(diào)用 椭微。
5、應(yīng)用總結(jié)
我們都知道定時(shí)器的匿名函數(shù)里不能寫this盲链,它會(huì)指向window蝇率,但有了bind方法以后,我們可以隨意設(shè)定this 的指向刽沾。
利用變量賦值改變(將正確的this存儲(chǔ)下來(lái))本慕。

JSON

JSON 是一種輕量級(jí)的數(shù)據(jù)交換格式。它是基于 ECMAScript的一個(gè)子集侧漓,采用完全獨(dú)立于編程語(yǔ)言的文本格式來(lái)存儲(chǔ)和表示數(shù)據(jù)锅尘。簡(jiǎn)潔和清晰的層次結(jié)構(gòu)使得 JSON 成為理想的數(shù)據(jù)交換語(yǔ)言。 易于人閱讀和編寫布蔗,同時(shí)也易于機(jī)器解析和生成藤违,并有效地提升網(wǎng)絡(luò)傳輸效率浪腐。

JSON字符串和對(duì)象直接的轉(zhuǎn)換

1、JSON.parse 函數(shù)
作用:將 JavaScript 對(duì)象表示法 (JSON) 字符串轉(zhuǎn)換為對(duì)象顿乒,具有json格式檢測(cè)功能议街。
2、JSON.stringify()函數(shù)
作用:將 JavaScript 值轉(zhuǎn)換為 JavaScript 對(duì)象表示法 (JSON) 字符串
3淆游、eval()函數(shù)---性能不及JSON.parse(),安全性不好傍睹。
作用:eval() 函數(shù)可計(jì)算某個(gè)字符串,并執(zhí)行其中的的 JavaScript 代碼犹菱。
eval()在解析代碼時(shí)還要用一對(duì)圓括號(hào)將字符串包起來(lái)拾稳。其目的是迫使eval函數(shù)在處理JavaScript代碼的時(shí)候強(qiáng)制將括號(hào)內(nèi)的表達(dá)式轉(zhuǎn)化為對(duì)象,而不是作為語(yǔ)句來(lái)執(zhí)行腊脱。
例如:eval("{}") 和 eval('('+'{}'+')')
eval比JSON.parse()要早访得。

let和const關(guān)鍵字( http://es6.ruanyifeng.com/

ES6新增了let命令,用來(lái)聲明變量陕凹。它的用法類似于var悍抑,但是所聲明的變量,只在let命令所在的代碼塊內(nèi)有效杜耙。

不存在變量提升

只要塊級(jí)作用域內(nèi)存在let命令搜骡,它所聲明的變量就“綁定”這個(gè)區(qū)域,不再受外部的影響佑女。

let不允許在相同作用域內(nèi)记靡,重復(fù)聲明同一個(gè)變量。

ES6允許塊級(jí)作用域的任意嵌套团驱,外層無(wú)法讀取內(nèi)層作用域的變量摸吠,反之可以

允許在塊級(jí)作用域內(nèi)聲明函數(shù)

const聲明一個(gè)只讀的常量。一旦聲明嚎花,常量的值就不能改變寸痢。

const聲明的常量,也與let一樣不可重復(fù)聲明紊选。

const的作用域與let命令相同:只在聲明所在的塊級(jí)作用域內(nèi)有效啼止。

變量的解構(gòu)賦值

ES6允許按照一定模式,從數(shù)組和對(duì)象中提取值兵罢,對(duì)變量進(jìn)行賦值族壳,這被稱為解構(gòu).
解構(gòu)的作用是可以快速取得數(shù)組或?qū)ο螽?dāng)中的元素或?qū)傩裕鵁o(wú)需使用arr[x]或者obj[key]等傳統(tǒng)方式進(jìn)行賦值

數(shù)組的解構(gòu)賦值

對(duì)象的解構(gòu)賦值

字符串的解構(gòu)賦值趣些。

函數(shù)參數(shù)的解構(gòu)賦值(利用數(shù)組和對(duì)象解構(gòu)傳參賦值)

擴(kuò)展運(yùn)算符

擴(kuò)展運(yùn)算符用三個(gè)點(diǎn)號(hào)表示仿荆,功能是把數(shù)組或類數(shù)組對(duì)象展開成一系列值

rest運(yùn)算符

rest運(yùn)算符也是三個(gè)點(diǎn)號(hào),不過(guò)其功能與擴(kuò)展運(yùn)算符恰好相反,把逗號(hào)隔開的值序列組合成一個(gè)數(shù)組

字符串?dāng)U展

模板字符串

模板字符串(template string)是增強(qiáng)版的字符串拢操,用反引號(hào)(`)標(biāo)識(shí)锦亦。它可以當(dāng)作普通字符串使用,也可以用來(lái)定義多行字符串令境,或者在字符串中嵌入變量杠园。

repeat(n)方法返回一個(gè)新字符串,表示將原字符串重復(fù)n次舔庶。

includes():返回布爾值抛蚁,表示是否找到了參數(shù)字符串。

startsWith():返回布爾值惕橙,表示參數(shù)字符串是否在源字符串的頭部瞧甩。

endsWith():返回布爾值,表示參數(shù)字符串是否在源字符串的尾部弥鹦。

=>函數(shù)

函數(shù)默認(rèn)值

箭頭函數(shù)有幾個(gè)使用注意點(diǎn)肚逸。

1、函數(shù)體內(nèi)this對(duì)象彬坏,就是定義時(shí)所在的對(duì)象朦促,而不是使用時(shí)所在的對(duì)象。This不會(huì)改變了栓始。
2务冕、不可以當(dāng)作構(gòu)造函數(shù),也就是說(shuō)幻赚,不可以使用new命令禀忆,否則會(huì)拋出一個(gè)錯(cuò)誤。
3坯屿、不可以使用arguments對(duì)象,該對(duì)象在函數(shù)體內(nèi)不存在巍扛。
4领跛、箭頭函數(shù)一定是匿名函數(shù)。
5撤奸、箭頭函數(shù)應(yīng)用總結(jié):

箭頭函數(shù)適合于無(wú)復(fù)雜邏輯或者無(wú)副作用的純函數(shù)場(chǎng)景下吠昭,例如用在map、reduce胧瓜、filter的回調(diào)函數(shù)定義中矢棚;

不要在最外層定義箭頭函數(shù),因?yàn)樵诤瘮?shù)內(nèi)部操作this會(huì)很容易污染全局作用域府喳。最起碼在箭頭函數(shù)外部包一層普通函數(shù)蒲肋,將this控制在可見的范圍內(nèi);

箭頭函數(shù)最吸引人的地方是簡(jiǎn)潔。在有多層函數(shù)嵌套的情況下兜粘,箭頭函數(shù)的簡(jiǎn)潔性并沒有很大的提升申窘,反而影響了函數(shù)的作用范圍的識(shí)別度,這種情況不建議使用箭頭函數(shù)孔轴。

Symbol類型

symbol--表示獨(dú)一無(wú)二的值剃法,它是js中的第七種數(shù)據(jù)類型。

基本數(shù)據(jù)類型:null undefined number boolean string symbol
引用數(shù)據(jù)類型:object
Symbol():首字母大寫路鹰。
symbol 函數(shù)前不能使用new,否則會(huì)報(bào)錯(cuò)贷洲,原因在于symbol是一個(gè)原始類型的值,不是對(duì)象晋柱。
1优构、symbol函數(shù)接收一個(gè)字符串作為參數(shù),表示對(duì)symbol的描述趣斤,主要是為了在控制臺(tái)顯示俩块,或者轉(zhuǎn)為字符串的時(shí)候,比較容易區(qū)分浓领。描述的內(nèi)容相同僅僅表示的是描述玉凯,不代表其他的意義。
2联贩、symbol數(shù)據(jù)類型轉(zhuǎn)換漫仆。
symbol可以利用String()、toString()轉(zhuǎn)換成字符串
利用Boolean()或者泪幌!轉(zhuǎn)換成布爾值(只有true值)
不能轉(zhuǎn)換成數(shù)字盲厌。
不能使用任何運(yùn)算符進(jìn)行運(yùn)算。
3祸泪、作為對(duì)象的屬性名吗浩。
4、注意事項(xiàng)
不能直接使用[symbol()]作為鍵值没隘,最好添加對(duì)應(yīng)的參數(shù)進(jìn)行區(qū)分懂扼,而且也不能被for...in遍歷出來(lái)。但可以通過(guò)Object.getOwnPropertySymbols(obj)方法獲取一個(gè)對(duì)象所有的symbol屬性右蒲。

Set(array)和Map(object)結(jié)構(gòu)

ES6提供了數(shù)據(jù)結(jié)構(gòu)set. 它類似于數(shù)組阀湿,但是成員的值都是唯一的,沒有重復(fù)的值瑰妄。
Set 本身是一個(gè)構(gòu)造函數(shù)陷嘴,用來(lái)生成 Set 數(shù)據(jù)結(jié)構(gòu),數(shù)組作為參數(shù)间坐。
每一項(xiàng)即是鍵也是值灾挨。
1邑退、創(chuàng)建一個(gè)Set;
2涨醋、Set類的屬性--size
3瓜饥、Set類的方法
Set.add(value) 添加一個(gè)數(shù)據(jù),返回Set結(jié)構(gòu)本身浴骂,允許進(jìn)行鏈?zhǔn)讲僮鳌?br> Set.delete(value) 刪除指定數(shù)據(jù)乓土,返回一個(gè)布爾值,表示刪除是否成功溯警。
Set.has(value) 判斷該值是否為Set的成員趣苏,返回一個(gè)布爾值。
Set.clear() 清除所有的數(shù)據(jù)梯轻,沒有返回值食磕。
forEach():使用回調(diào)函數(shù)遍歷每個(gè)成員

數(shù)據(jù)結(jié)構(gòu)--map

JavaScript 的對(duì)象(Object),只能用字符串當(dāng)作鍵喳挑。這給它的使用帶來(lái)了很大的限制彬伦。ES6 提供了 Map 數(shù)據(jù)結(jié)構(gòu)。它類似于對(duì)象伊诵,但是“鍵”的范圍不限于字符串单绑,各種類型的值(包括對(duì)象)都可以當(dāng)作鍵。
1曹宴、創(chuàng)建一個(gè)map
2搂橙、map類的屬性--size
3帖族、map類的方法
map.set(key,value) :設(shè)置鍵名key對(duì)應(yīng)的鍵值value,然后返回整個(gè)map結(jié)構(gòu)泥栖,如果key已經(jīng)有值,則鍵值會(huì)被更新瞻润,否則就生成該鍵版扩,可以鏈?zhǔn)讲僮鳌?br> map.get(key) get方法讀取key對(duì)應(yīng)的鍵值废离,如果找不到key,返回undefined
map.delete(key) 刪除某個(gè)鍵礁芦,返回true.如果刪除失敗蜻韭,返回false.
map.has(key) 方法返回一個(gè)布爾值,表示某個(gè)鍵是否在當(dāng)前map對(duì)象之中宴偿。
map.clear() 清除所有數(shù)據(jù)湘捎,沒有返回值
map.keys() 返回鍵名的遍歷器
map.values() 返回鍵名/鍵值的遍歷器
map.entries() 返回鍵值對(duì)的遍歷器
map.forEach() 使用回調(diào)函數(shù)遍歷每個(gè)成員诀豁。

數(shù)組和對(duì)象的擴(kuò)展

數(shù)組的擴(kuò)展方法

1窄刘、Array.from()方法用于將對(duì)象轉(zhuǎn)為真正的數(shù)組(類數(shù)組轉(zhuǎn)數(shù)組)
2、Array.of()方法用于將一組值舷胜,轉(zhuǎn)換為數(shù)組娩践。
3活翩、fill()方法使用給定值,填充一個(gè)數(shù)組翻伺。

對(duì)象的擴(kuò)展方法

1材泄、對(duì)象的簡(jiǎn)潔表示法
2、object.assign()用于對(duì)象的合并吨岭,將源對(duì)象的所有可枚舉屬性拉宗,復(fù)制到目標(biāo)對(duì)象。

掌握class的寫法及繼承

應(yīng)用

1.了解class面向?qū)ο缶幊?br> 2.掌握es6語(yǔ)法的靈活運(yùn)用

綜合應(yīng)用

3.封裝拖拽效果
4.封裝常見兼容

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末辣辫,一起剝皮案震驚了整個(gè)濱河市旦事,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌急灭,老刑警劉巖姐浮,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異葬馋,居然都是意外死亡卖鲤,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門畴嘶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)蛋逾,“玉大人,你說(shuō)我怎么就攤上這事掠廓』徊溃” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵蟀瞧,是天一觀的道長(zhǎng)沉颂。 經(jīng)常有香客問(wèn)我,道長(zhǎng)悦污,這世上最難降的妖魔是什么铸屉? 我笑而不...
    開封第一講書人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮切端,結(jié)果婚禮上彻坛,老公的妹妹穿的比我還像新娘。我一直安慰自己踏枣,他們只是感情好昌屉,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著茵瀑,像睡著了一般间驮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上马昨,一...
    開封第一講書人閱讀 51,287評(píng)論 1 301
  • 那天竞帽,我揣著相機(jī)與錄音扛施,去河邊找鬼。 笑死屹篓,一個(gè)胖子當(dāng)著我的面吹牛疙渣,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播堆巧,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼妄荔,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了谍肤?” 一聲冷哼從身側(cè)響起懦冰,我...
    開封第一講書人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎谣沸,沒想到半個(gè)月后刷钢,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡乳附,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年内地,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赋除。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡阱缓,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出举农,到底是詐尸還是另有隱情荆针,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布颁糟,位于F島的核電站航背,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏棱貌。R本人自食惡果不足惜玖媚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望婚脱。 院中可真熱鬧今魔,春花似錦、人聲如沸障贸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)篮洁。三九已至涩维,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間嘀粱,已是汗流浹背激挪。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留锋叨,地道東北人垄分。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像娃磺,于是被迫代替她去往敵國(guó)和親薄湿。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

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