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

P6 JS高頻面試題
1、原型鏈
理解:如果一個對象obj,想要訪問一個屬性,比如這個屬性的名字a,那么obj.a,他會先找對象本身有沒有這個屬性,如果沒有,會先通過__protop__來找到創(chuàng)建對象的構(gòu)造函數(shù),再找到它的原型上面有沒有a屬性,如果沒有還會繼續(xù)沿著上一級往上找,直到找到原型的頂點Object,沒有則返回Null。
??????2、閉包
含義:當(dāng)A函數(shù)中返回了B函數(shù),并且返回的B函數(shù)中有使用到A函數(shù)中的局部變量(包含參數(shù))就會形成一個特性的形態(tài),就叫閉包
1) 內(nèi)存泄漏:A函數(shù)執(zhí)行完成后,生成了B函數(shù),應(yīng)該被垃圾回收機制回收,但是因為生成的B函數(shù)還在使用A函數(shù)中的局部變量,就會導(dǎo)致A函數(shù)沒有及時回收,導(dǎo)致內(nèi)存泄漏.
2) 防抖:在一定時間內(nèi),進行重復(fù)多次操作,只會進行最后一次操作,避免事件的重復(fù)觸發(fā)
3) 節(jié)流:在一定時間內(nèi)的多次重復(fù)操作,只會進行第一次操作,,一段時間后才會可以進行下一次操作。
3、數(shù)組合并方法
??????1)concat
??????2) […a,…b]展開運算符
??????3)[a,b].flat() 扁平化處理
4、cookie 和session
??????1)Cookie和session是為HTTP請求掛載狀態(tài)的,也就說在前后端交互的過程中,往往需要利用cookie或者session來對客戶端進行標(biāo)記
2)Cookie和session本質(zhì)都是利用cookie或者localStorage來進行數(shù)據(jù)交互,而cookie和localStorage又都有跨域的限制:
???????Cookie通過設(shè)置domain可以實現(xiàn)一級域名下的二級域名之間可以相互訪問,localStorage則不能跨域。
??????5、進程和線程的區(qū)別
?????????????1)進程是資源分配的最小單元,線程是代碼執(zhí)行的最小單元。
2)一個應(yīng)用程序可能會開啟多個進程,進程之間數(shù)據(jù)不共享,一個進程內(nèi)部可以開啟多個線程,線程之間數(shù)據(jù)可以共享,所以多線程的情況下,往往要考慮的是線程之間的執(zhí)行順序問題
?????????????3)瀏覽器也可以通過webWorkers開啟多線程
??????6、協(xié)商緩存和強緩存的區(qū)別
?????????????1)協(xié)商緩存和強緩存指的都是瀏覽器對靜態(tài)資源文件的緩存機制
?????????????2)強緩存是客戶端直接查看本地的緩存文件是否過期,沒有則直接取用
?????????????3)強緩存在前,協(xié)商緩存在后
?????????????4)資源未過期觸發(fā)強制緩存,資源過期后再觸發(fā)協(xié)商緩存
?????????????5)判斷過期方法expires(絕對時間)、cache-control(相對時間)
?
????????