學(xué)習(xí)筆記:JavaScript閉包,Promise,可以截圖成PPT的內(nèi)容【詩(shī)書(shū)畫(huà)唱】
推薦:


目錄:
JavaScript閉包 - Web前端工程師面試題講解
JavaScript 你理解Promise嗎 - Web前端工程師面試題講解

JavaScript閉包 - Web前端工程師面試題講解
理解閉包的學(xué)習(xí)筆記:

作用:1.減少創(chuàng)建全局變量 減少傳遞給函數(shù)的參數(shù)量
2.隱藏變量,避免全局污染
3.可以讀取函數(shù)內(nèi)部的變量
(同時(shí)閉包使用不當(dāng),優(yōu)點(diǎn)就變成了缺點(diǎn))




閉包的話(huà),對(duì)于一些面試初級(jí)的前端工程師可能不是很重要,但對(duì)于一些面試一些中,高級(jí)的前端工程師來(lái)說(shuō),閉包可能是必考的知識(shí)點(diǎn)。理解閉包可以讓我們對(duì)JS有更深入的了解。

可以把“閉包”理解成:拉上拉鏈的裝了書(shū)的書(shū)包,要用書(shū)的時(shí)候就是把書(shū)包的拉鏈打開(kāi),去取書(shū)。

這里這個(gè)代碼為什么會(huì)錯(cuò)?因?yàn)樵谌謭?zhí)行上下文的時(shí)候,沒(méi)有進(jìn)入books這個(gè)函數(shù)里面,且函數(shù)外面沒(méi)有找到book這個(gè)變量。執(zhí)行上下文可以分為創(chuàng)建階段和執(zhí)行階段。

執(zhí)行上下文可以理解為執(zhí)行環(huán)境



這里閉包的執(zhí)行順序是:1-2-3-4-5-4-3-2-1(像是把在罐子里,放入薯片后取出薯片的過(guò)程)

"薯片"的執(zhí)行,存放形式就是“棧"

為什么要用薯片罐模擬?因?yàn)镴S是單線(xiàn)程的(單線(xiàn)程就是:一次做一件事情。)


理解閉包的關(guān)鍵之一是:理解執(zhí)行上下文和其中創(chuàng)建階段的作用域鏈,作用域鏈可以理解為:由當(dāng)前變量對(duì)象和所有父級(jí)變量對(duì)象組成的集合。








JavaScript 你理解Promise嗎 - Web前端工程師面試題講解



new Promise 回有2個(gè)結(jié)果:成功和失敗,成功就是reslove,失敗就是reject。new?Promise 是要一段時(shí)間后才能知道,所以
Promise 是回調(diào)的升級(jí)版。在執(zhí)行要花費(fèi)較長(zhǎng)時(shí)間的程序的時(shí)候就可以用Promise來(lái)進(jìn)行異步的處理,防止阻塞。



用then捕獲resolve,用catch捕獲reject

x => x * x 相當(dāng)于 function(x){return x*x}

