三大模塊
學習方式
根據問題先思索自己的答案,有了答案後再繼續學習,把老師的答案和自己的對比,最終組織成自己的語言
H5和C3方面
請你描述一下cookies,sessionStorrage和localStrong的區別
cookies:是網站用來標記用戶身份的一段數據,通常情況下是一段加密字符串,默認情況下只有同源http請求中攜帶
sessionStorage:瀏覽器本地存儲的一種方式,以鍵值對的形式進行存儲,數據會在瀏覽器關閉後刪除
localStorage:一般不會被主動刪除,數據會一直存在
display:none和visibility:hidden的區別
display:none會讓元素完全從渲染樹上消失,不渲染的時候不佔據空間,visbility不會讓元素從渲染書上消失,還會繼續佔據空間.
爲什麼要初始化css的樣式
因爲瀏覽器有兼容問題,不同瀏覽器對某些元素的默認樣式是不同的,這些樣式會影響到最終的佈局,如果沒有初始化,那麼不同瀏覽器會存在頁面的差異
什麼是postcss有什麼作用
是一個平臺,可以使用一些插件來優化css代碼
JS方面
原型和原型鏈是什麼,有什麼特點
談談對this對象的理解
this指向函數的直接調用者
如果有new關鍵字,那麼指向的是new出來的對象
在事件中指向這個事件的觸發的對象
談談你對webpack的看法
談談你對promise的理解
promise用來解決異步操作造成的回調地獄的問題
promise是一個構造函數,通過new關鍵字創建實例對象
構造函數接受一個函數作爲參數,函數會立即執行,函數有兩個參數,一個是resolve,和reject,如果一步操作完成是調用resolve函數,如果失敗調用reject函數,
成功或失敗可以通過then或者catch來接受,成功的話調用then裏的函數,失敗調用catch裏的函數
null和undefined區別
undefined表示不存在這個值,他是一個變量的原始狀態
null 是一個具體的值,只不過這個值爲空而已
什麼是同步,什麼事異步,他們的區別是什麼
同步:線程會被堵塞,等待任務返回結果
異步:線程不會被堵塞,任務完成的時候通知js引擎
什麼是EventLoop
主線程執行完了之後到異步隊列裏找異步任務加入主線程執行
什麼是bind,call,apply,以及區別
這三個都可以替換this的指向,call和apply都會讓函數立即執行,只是參數不同,call接受一個參數序列,apply除了第一個參數外,需要接受一個參數數組,
bind參數和call一樣,但是不會立即執行,會返回一個新的函數
typeOf和instanceOf的區別
typeof用來判斷值的類型
instanceOf用來判斷一個對象是否是另一個對象的實例
Vue方面
Vue的生命週期
vue實現雙向綁定的原理
遍歷被監聽對象的屬性,通過Object.defineProperty()監聽getter和setter.這樣可以追蹤屬性的變化,當屬性變化時,進行通知