千鋒教育web前端高頻面試題視頻教程,kerwin大話前端面試秘籍(附答案)

p7 js面試題
事件循環(huán):實(shí)現(xiàn)單線程非阻塞的方法
事件循環(huán)的過程:
1,所有同步任務(wù)先放在在主線程執(zhí)行,形成執(zhí)行棧,碰到異步任務(wù)放到任務(wù)隊(duì)列中;當(dāng)執(zhí)行棧的所有同步任務(wù)執(zhí)行完后,讀取任務(wù)隊(duì)列執(zhí)行異步任務(wù)
2,先執(zhí)行任務(wù)隊(duì)列里面所有的微任務(wù),然后執(zhí)行一個(gè)宏任務(wù),再執(zhí)行所有的微任務(wù),再執(zhí)行一個(gè)宏任務(wù),再執(zhí)行所有的微任務(wù)....以此類推
同步任務(wù): 按順序執(zhí)行的任務(wù),每個(gè)任務(wù)必須等待上一個(gè)任務(wù)完成才能執(zhí)行。
異步任務(wù): 異步任務(wù)又分為宏任務(wù)和微任務(wù)(在任務(wù)隊(duì)列中,不進(jìn)入主線程)。
宏任務(wù):包括整體代碼script,setTimeout,setInterval,I/O,UI,Renderin
微任務(wù): 包括 Promise,process,nextTick
http相關(guān)
http的狀態(tài)碼:
200 成功
200~300之間都算正常
301 請(qǐng)求的網(wǎng)頁已水 久移動(dòng)到新位置。
302 臨時(shí)性重定向。
307 內(nèi)部重定向
304 自從比次請(qǐng)求后。請(qǐng)求的網(wǎng)頁未修改過。
401 需要驗(yàn)證
403 禁止訪問
404 找不到資源(請(qǐng)求的目標(biāo)不存在)
405 請(qǐng)求的方式錯(cuò)誤
500 服務(wù)器錯(cuò)誤
501 服務(wù)器沒有該功能
502 網(wǎng)絡(luò)錯(cuò)誤
503 服務(wù)器過載或過載
p13 vue面試題
1,解釋單向數(shù)據(jù)流和雙向數(shù)據(jù)綁定
單向數(shù)據(jù)流:組件之間的數(shù)據(jù)傳輸,只能通過一個(gè)方向來修改數(shù)據(jù)
雙向數(shù)據(jù)綁定:當(dāng)數(shù)據(jù)發(fā)生變化的時(shí)候。視圖也就發(fā)生變化。當(dāng)視圖發(fā)生變化的時(shí)候。數(shù)據(jù)也會(huì)跟著同少變化。兩個(gè)數(shù)據(jù)流之間互為影響
object.defineProperty的缺點(diǎn)
1,無法監(jiān)聽es6的Set. Map變化
2,無法監(jiān)聽CIass類型的數(shù)據(jù):
3,屬性的新加或者刪除也無法監(jiān)聽:
4,數(shù)組元素的增加和刪除也無法監(jiān)聽。
Vue響應(yīng)式原理:
vue的響應(yīng)式實(shí)現(xiàn)主要是利用了oject. defineProperty的方法里面的setter與getter 方法的觀察者模式來實(shí)現(xiàn)。
在組件初始化時(shí)會(huì)給每一個(gè)data屬性注冊(cè)getter和setter.然后再new一個(gè)自己的watcher對(duì)象,此時(shí)watcher會(huì)立
即調(diào)用組件的render函數(shù)去生成虛扣DOM.在調(diào)用render的時(shí)候,就會(huì)需要用到data的屬性值,此時(shí)會(huì)觸發(fā)getter函
數(shù),將當(dāng)前的watcher函數(shù)注冊(cè)進(jìn)sub里。當(dāng)data屬性發(fā)生改變之后, 就會(huì)遍歷sub 電所有的watcher對(duì)象,通知它們?nèi)?/p>
重新誼染組件。
proxy的優(yōu)勢(shì):
Proxy可以直接監(jiān)聽對(duì)象而非屬性,可以直接監(jiān)聽數(shù)組的變化:
Proxy有多達(dá)13種攔截方法,不限于apply. ounkeys、deleteProperty. has等等是
object . defineProperty不具備的:
Proxy返回的是: -個(gè)新對(duì)象,我們可以只操作新的對(duì)象達(dá)到目的,面object. defineProperty只能遍歷對(duì)象屬性直接修改