1.塊級作用域,詞法作用域的了解
答:塊級作用域:任何一對花括號里面的語句集都屬于一個塊,里面定義的變量外部不可訪問
詞法作用域: 詞法作用域就是定義在詞法階段的作用域
2.let、const、var的區(qū)別,存儲的位置在哪里,存儲的方式
答: 基本數(shù)據(jù)類型的值直接在棧內(nèi)存中存儲,引用數(shù)據(jù)類型是保存到堆內(nèi)存中的
3.JS數(shù)據(jù)類型,怎么去區(qū)分?jǐn)?shù)據(jù)類型?typeof function是什么
4.ES6中的class是什么類型?函數(shù)也算是一個對象嗎?
答: class作為對象的模板被引入,class本質(zhì)是function
5.用一句話概括繼承,ES5中兩個對象間怎么繼承呢?子類如何繼承父類所有的方法和屬性
答:談到繼承首先應(yīng)該說明一下類和對象的概念。類是擁有共通屬性和行為的實體的抽象,而對象是一個具體的實例
繼承方法: 1.原型鏈繼承? 2. 借用構(gòu)造函數(shù),通過call改變this指向? 3.組合繼承---重點看看
6.webpack工作流程
答:1.webpack Cli 啟動打包流程,解析配置項參數(shù)
? ? ? ? 2.載入webpack核心模塊,創(chuàng)建Compiler對象
? ? ? ? 3.注冊Plugins
? ? ? ? 4.使用Compiler對象開始編譯整個項目
? ? ? ? 5.從入口文件開始,解析模塊為AST,分析模塊依賴,形成依賴關(guān)系樹
? ? ? ? 6.遞歸依賴樹,將每個模塊交給對應(yīng)的Loader處理
? ? ? ? 7.合并Loader處理完的結(jié)果,將打包結(jié)果輸出到dist目錄
7.webpack中plugin和loader的區(qū)別
答:loader: 用于對模塊源碼的轉(zhuǎn)換
? ? ? ? plugin: 用于解決loader無法實現(xiàn)的其他事,從打包優(yōu)化和壓縮
8.每次打包之后怎么清除瀏覽器緩存
9.http緩存的步驟,有幾種緩存方法,強緩存和協(xié)商緩存可以結(jié)合使用嗎?
答:
緩存的步驟:?在瀏覽器加載資源的時候,首先會根據(jù)請求頭的expires和cache-control判斷是否命中強緩存策略,判斷是否向遠(yuǎn)程服務(wù)器請求資源還是去本地獲取緩存資源。
?強緩存和協(xié)商緩存如果同時存在時,會去先對比強緩存是否還再有效期,如果強緩存還在有效期內(nèi)則直接使用強緩存,否則協(xié)商緩存生效
10.ES6 Promise為什么可以實現(xiàn)鏈?zhǔn)秸{(diào)用,普通函數(shù)鏈?zhǔn)秸{(diào)用怎么去實現(xiàn)的?
答:因為在then方法里面返回了構(gòu)造函數(shù)的實例,普通函數(shù)鏈?zhǔn)秸{(diào)用返回函數(shù)本身
11.keep-alive工作流程
答:keep-alive?緩存機制便是根據(jù)LRU策略來設(shè)置緩存組件新鮮度,將很久未訪問的組件從緩存中刪除
12.vue2.0和vue3.0響應(yīng)式數(shù)據(jù)處理區(qū)別在哪里,vue2.0是怎么實現(xiàn)數(shù)組的響應(yīng)式的
答:proxy 可以直接數(shù)組類型的數(shù)據(jù)變化
13.template模板標(biāo)簽有什么作用
答:?template的作用是模板占位符,可幫助我們包裹元素,但在循環(huán)過程當(dāng)中,template不會被渲染到頁面上
14.vue3.0? 在根節(jié)點寫注釋會被解析到嗎?會有什么影響?
答:會被解析到,如果根節(jié)點寫注釋,會出現(xiàn)路由空白的情況
15.長列表優(yōu)化方案,滾動過快會不會有白屏的效果,怎么去處理
答:a.?虛擬列表,會有白屏效果,上下設(shè)置滾動緩沖區(qū)域消除白屏
? ? ? ? b.分片渲染:?啟用使用API setTimeout 分片渲染 每次渲染50條,進(jìn)入宏任務(wù)列隊進(jìn)行頁面渲染以提高效率。
16.websocket理解
答:WebSocket是HTML5下一種新的協(xié)議(websocket協(xié)議本質(zhì)上是一個基于tcp的協(xié)議)
它實現(xiàn)了瀏覽器與服務(wù)器全雙工通信,能更好的節(jié)省服務(wù)器資源和帶寬并達(dá)到實時通訊的目的
Websocket是一個持久化的協(xié)議
應(yīng)用:需要發(fā)送消息給客戶端
17.性能優(yōu)化問題以及方案,會遇到頁面卡頓情況,怎么去排查問題
答:1.壓縮源碼和圖片 2.選擇合適的圖片格式 3.合并靜態(tài)資源 4.把多個CSS合并為一個CSS
5.開啟服務(wù)器端的gzip壓縮 6.使用CDN? 7.延長靜態(tài)資源緩存時間
18.瀏覽器本地緩存有了解IndexDB嗎
答:IndexdDB是一種NoSQL數(shù)據(jù)庫,存儲的是javascript對象,而且具有同源策略
19.vue緩存頁面很多,會有什么影響,要記錄用戶行為,怎么解決
答:會造成頁面卡頓,可以使用indexdDbB記錄用戶行為,不需要用到緩存