Day 89/100 近期面試題匯總

寫在前面的話

最近面試,有不少題目還不錯~

分享給大家

面試題如下

1、前端實現文件的斷點續(xù)傳

https://www.cnblogs.com/imwtr/p/5957391.html

https://juejin.cn/post/6844904046436843527


2、如何獲取強緩存和協(xié)商緩存

https://segmentfault.com/a/1190000021661656

瀏覽器會獲取該緩存資源的?header?中的信息,根據?response header?中的?expires?和?cache-control?來判斷是否命中強緩存,如果命中則直接從緩存中獲取資源。

如果沒有命中強緩存,瀏覽器就會發(fā)送請求到服務器,這次請求會帶上?IF-Modified-Since?或者?IF-None-Match, 它們的值分別是第一次請求返回?Last-Modified或者?Etag,由服務器來對比這一對字段來判斷是否命中。如果命中,則服務器返回 304 狀態(tài)碼,并且不會返回資源內容,瀏覽器會直接從緩存獲取;否則服務器最終會返回資源的實際內容,并更新 header 中的相關緩存字段。

No-cache 和 no-store的區(qū)別

no-cache 可以在本地緩存,可以在代理服務器緩存,但是這個緩存要服務器驗證才可以使用

no-store 徹底得禁用緩沖,本地和代理服務器都不緩沖,每次都從服務器獲取


3、為什么會有OPTIONS請求【預請求】

https://cloud.tencent.com/developer/article/1046663

1)獲取服務器支持的HTTP請求方法;

2)用來檢查服務器的性能。


4、函數柯里化

通過偏函數實現,把多參函數轉換為一個嵌套一元函數的過程


5、頂級域名和子級域名之間的cookie共享

https://blog.csdn.net/u010955166/article/details/78469927

domain


6、為什么TCP連接要三次握手,四次揮手

https://juejin.cn/post/6844903913611591688

第四次揮手??: 客戶端接收到服務端的連接釋放FIN報文后,必須發(fā)出確認報文,ACK=1,ack=z+1,而自己的序列號是seq=x+1,此時,客戶端就進入了TIME-WAIT(時間等待)狀態(tài)。此時服務端收到客戶端發(fā)送過來的確認報文,就立即撤銷自己的傳輸控制塊TCB,進入CLOSED狀態(tài),注意此時的TCP連接還沒有釋放,必須經過2MSL(最長報文段壽命)的時間后,客戶端沒有收到服務端發(fā)來的任何數據,證明服務端已正常關閉,此時客戶端會撤銷相應傳輸控制塊TCB后,進入CLOSED狀態(tài)。至此,TCP的連接才真正的斷開了。(服務端結束TCP連接的時間要比客戶端稍微早一些)


7、https://huaban.com/

布局如何實現


8、vue 父子組件的方法調用

cnblogs.com/yangshifu/archive/2018/08/22/9518528.html

父組件調用子組件的方法 $refs

子組件調用父組件的方法 $emit


9、Vue父子組件生命周期執(zhí)行順序及鉤子函數的個人理解

https://www.cnblogs.com/yuliangbin/p/9348156.html


10、加載渲染過程

  父beforeCreate->父created->父beforeMount->子beforeCreate->子created->子beforeMount->子mounted->父mounted


11、react hook

https://www.ruanyifeng.com/blog/2019/09/react-hooks.html

https://zh-hans.reactjs.org/docs/hooks-intro.html


12、SPA(single page application

1)SPA這個模型中,是通過動態(tài)地重寫頁面的部分與用戶交互,而避免了過多的數據交換,響應速度自然相對更高。

比如,AngularJS,Vue

2)優(yōu)點

頁面之間的切換非???/p>

一定程度上減少了后端服務器的壓力(不用管頁面邏輯和渲染)

3)SEO【白帽技術】

在每頁使用一個短、獨特和相關的標題。

編輯網頁,用與該頁的主題。有關的具體術語替換隱晦的字眼。這有助于該站訴求的觀眾群,在搜索引擎上搜索而被正確導引至該站。

在該站點增加相當數量的原創(chuàng)內容。

使用合理大小、準確描述的匯標,而不過度使用關鍵字、驚嘆號、或不相關標題術語。

注意網址字眼,有助于搜索引擎優(yōu)化。

確認所有頁可透過正常的鏈接來訪問,而非只能透過Java 、JavaScript或Adobe Flash應用程序訪問。這可透過使用一個專屬列出該站所有內容的網頁達成(網站地圖)

透過自然方式開發(fā)鏈接:Google不花功夫在這有點混淆不清的指南上。寫封電子郵件給網站員,告訴他:您剛剛貼了一篇挺好的文章,并且請求鏈接,這種做法很可能為搜索引擎所認可。

參與其他網站的網絡集團(譯按:web ring 指的是有相同主題的結盟站群)──只要其它網站是獨立的、分享同樣題目和可比較的品質。

4)SSR??

SSRServer-Side Rendering(服務器端渲染)的縮寫

https://juejin.cn/post/6844903688075509774

SSR常用框架

React 的Next

Vue.js 的Nuxt


13、雙向綁定

http://www.itdecent.cn/p/cdd7dde12786

https://juejin.cn/post/6844903901003513863


14、Vue響應式原理的核心就是Observer、Dep、Watcher。

Observer中進行響應式的綁定,在數據被讀的時候,觸發(fā)get方法,執(zhí)行Dep來收集依賴,也就是收集Watcher。

在數據被改的時候,觸發(fā)set方法,通過對應的所有依賴(Watcher),去執(zhí)行更新。比如watch和computed就執(zhí)行開發(fā)者自定義的回調方法。


15、閉包

源自于函數式編程

由于在Javascript語言中,只有函數內部的子函數才能讀取局部變量,因此可以把閉包簡單理解成"定義在一個函數內部的函數"。 所以,在本質上,閉包就是將函數內部和函數外部連接起來的一座橋梁。?閉包可以用在許多地方。 它的最大用處有兩個,一個是前面提到的可以讀取函數內部的變量,另一個就是讓這些變量的值始終保持在內存中。

js有哪些內存泄漏的方式?

https://juejin.cn/post/6844903917986267143


16、Primise.all()

http://www.itdecent.cn/p/7e60fc1be1b2

在前端開發(fā)請求數據的過程中,偶爾會遇到發(fā)送多個請求并根據請求順序獲取和使用數據的場景,使用Promise.all毫無疑問可以解決這個問題。


17、字符串方法

https://www.runoob.com/js/js-strings.html

es6新增

https://es6.ruanyifeng.com/#docs/string

https://es6.ruanyifeng.com/#docs/string-methods

1For of

2)ES6 引入了模板字符串


18、數組方法

https://www.runoob.com/jsref/jsref-obj-array.html

數組擴展

https://es6.ruanyifeng.com/#docs/array

https://es6.ruanyifeng.com/#docs/array#Array-from


以上

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容