As a Interviewer

1梨水,函數(shù)聲明與函數(shù)表達式的區(qū)別是什么乏矾?

考察點:函數(shù)聲明提升

答:函數(shù)聲明在函數(shù)調(diào)用時可以提前調(diào)用,存在“函數(shù)聲明提升”润匙,而函數(shù)表達式則不行诗眨。

2,回調(diào)函數(shù)和promise在JS的事件循環(huán)機制上有什么本質(zhì)上的區(qū)別孕讳?

答:回調(diào)函數(shù)的callback是等待異步回調(diào)有響應后匠楚,將回調(diào)函數(shù)插入事件循環(huán)隊列的末尾,等待主進程調(diào)用厂财。
promise的then

3油啤,什么是單線程,和異步有什么關系蟀苛?

答:單線程:只有一個線程益咬,同一時間只能做一件事情。
JS單線程是為了避免DOM渲染沖突
瀏覽器需要渲染DOM幽告,JS可以修改DOM結(jié)構梅鹦,JS執(zhí)行時候,瀏覽器DOM渲染會停止冗锁,兩段JS不能同時執(zhí)行(都修改DOM就沖突了)齐唆,webworker支持多線程,但是不能訪問DOM冻河。異步就是來解決這個問題的箍邮。

4,什么是event-loop(事件循環(huán))?

關鍵詞:主進程+異步隊列
答:事件輪詢叨叙,JS實現(xiàn)異步的具體解決方案锭弊。同步代碼直接執(zhí)行,異步函數(shù)先放在異步隊列中擂错,待同步函數(shù)執(zhí)行完成后味滞,輪詢執(zhí)行異步隊列的函數(shù)。

5钮呀,是否用過jQuery的Deferred

答:deferred:延遲的意思剑鞍。Deferred對象是jQuery1.5之后引入的針對異步的解決方案之一。jQuery的Deferred對象符合開放-封閉原則爽醋,對擴展開放蚁署,對修改封閉。promise和Deferred的區(qū)別蚂四,用Deferred生成的promise對象(deferred.promise())不能使用resolve光戈,reject去修改狀態(tài),只能監(jiān)聽使用then,done证杭,fail等方法田度。

6妒御,Promise的基本使用和原理

答:Promise的三種狀態(tài):pending解愤,fulfilled,rejected乎莉,狀態(tài)不可逆送讲。Promise有resolve,reject惋啃,then哼鬓,catch,race边灭,all等方法异希。then函數(shù)中沒有明文返回promise實例,則返回之前的promise實例绒瘦。
異常的捕獲(error和reject的捕獲)称簿,可以使用catch去統(tǒng)一捕獲扣癣,promise可以使用鏈式操作執(zhí)行,不用寫多個callback函數(shù)憨降。

7父虑,介紹一下async/await(和Promise的區(qū)別,聯(lián)系)

答:async/await是最直接的同步寫法寫異步函數(shù)授药,使用await士嚎,函數(shù)必須有async標識,await后面跟的一定是一個Promise實例悔叽,使用了promise莱衩,但是沒有和promise沖突,沒有取代promise骄蝇,只是同步的一種寫法膳殷,沒有了回調(diào)函數(shù)的寫法。

8九火,總結(jié)一下當前JS解決異步的方案

答:當前JS異步解決方案有:
1赚窃,異步回調(diào) 2,Promise對象 3岔激,generator生成器 4勒极,async/await,拋棄回調(diào)函數(shù)的寫法 5虑鼎,事件監(jiān)聽 6辱匿,發(fā)布訂閱等

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市炫彩,隨后出現(xiàn)的幾起案子匾七,更是在濱河造成了極大的恐慌,老刑警劉巖江兢,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件昨忆,死亡現(xiàn)場離奇詭異,居然都是意外死亡杉允,警方通過查閱死者的電腦和手機邑贴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來叔磷,“玉大人拢驾,你說我怎么就攤上這事「幕” “怎么了繁疤?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我稠腊,道長案疲,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任麻养,我火速辦了婚禮褐啡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘鳖昌。我一直安慰自己备畦,他們只是感情好,可當我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布许昨。 她就那樣靜靜地躺著懂盐,像睡著了一般。 火紅的嫁衣襯著肌膚如雪糕档。 梳的紋絲不亂的頭發(fā)上莉恼,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天,我揣著相機與錄音速那,去河邊找鬼俐银。 笑死,一個胖子當著我的面吹牛端仰,可吹牛的內(nèi)容都是我干的捶惜。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼荔烧,長吁一口氣:“原來是場噩夢啊……” “哼吱七!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起鹤竭,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤踊餐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后臀稚,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吝岭,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年烁涌,在試婚紗的時候發(fā)現(xiàn)自己被綠了苍碟。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片酒觅。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡撮执,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出舷丹,到底是詐尸還是另有隱情抒钱,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站谋币,受9級特大地震影響仗扬,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蕾额,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一早芭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧诅蝶,春花似錦退个、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至缰泡,卻和暖如春刀荒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背棘钞。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工缠借, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人宜猜。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓烈炭,卻偏偏與公主長得像,于是被迫代替她去往敵國和親宝恶。 傳聞我的和親對象是個殘疾皇子符隙,可洞房花燭夜當晚...
    茶點故事閱讀 43,472評論 2 348

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

  • JavaScript執(zhí)行機制,重點有兩點: 1.JavaScript是一門單線程語言垫毙。2.Event Loop(事...
    小泡_08f5閱讀 11,758評論 2 22
  • JS為什么是單線程的? 最初設計JS是用來在瀏覽器驗證表單操控DOM元素的是一門腳本語言霹疫,如果js是多線程的那么兩...
    船長___閱讀 2,186評論 1 15
  • 單線程 JavaScript是一門單線程的語言,被廣泛應用于瀏覽器和頁面DOM元素交互综芥,自從Node.js出現(xiàn)后丽蝎,...
    JunChow520閱讀 799評論 0 3
  • 本文首發(fā)在個人博客:http://muyunyun.cn/posts/7b9fdc87/ 提到 Node.js, ...
    牧云云閱讀 1,679評論 0 3
  • 弄懂js異步 講異步之前,我們必須掌握一個基礎知識-event-loop膀藐。 我們知道JavaScript的一大特點...
    DCbryant閱讀 2,706評論 0 5