1、函數(shù)防抖與節(jié)流
--函數(shù)防抖(debounce):觸發(fā)高頻事件后n秒內(nèi)函數(shù)只會執(zhí)行一次,如果n秒內(nèi)高頻事件再次被觸發(fā),則重新計算時間
函數(shù)節(jié)流(throttle):高頻事件觸發(fā),但在n秒內(nèi)只會執(zhí)行一次,所以節(jié)流會稀釋函數(shù)的執(zhí)行頻率
使用場景,比如無限加載的時候,
防抖輸入搜索:我連續(xù)輸入100個字母,在輸入最后一個字母后,再等200毫秒,執(zhí)行請求接口。
2、閉包
--它的最大用處有兩個,一個是可以讀取函數(shù)內(nèi)部的變量,另一個就是讓這些變量的值始終保持在內(nèi)存中,不會在外層函數(shù)調(diào)用后被自動清除。
優(yōu)點:
(1)變量長期駐扎在內(nèi)存中;
(2)避免全局變量的污染;
(3)私有成員的存在 ;
3、箭頭函數(shù)和普通js,this指向問題
4、bfc原理和定義
5、es6新增語法
6、webpack 打包 配置選項
7、import 和 require 的區(qū)別
8、對象的繼承
9、操作對象的幾種方法
10、jq組件化
11、數(shù)組去重
--【12種去重方法https://segmentfault.com/a/1190000016418021】
12、回調(diào)函數(shù)
13、css盒模型
--分兩種盒模型:IE盒模型和W3C盒模型,兩種盒模型都包括content、padding、border、margin(從里到外)
14、高階函數(shù)
15、Pomise.all
16、es6新增語法
let、const、箭頭函數(shù)
17、塊級作用域
--JS中作用域有:全局作用域、函數(shù)作用域。沒有塊作用域的概念。es6新增了。
塊作用域由 { } 包括,if語句和for語句里面的{ }也屬于塊作用域。
18、宏任務(wù)和微任務(wù)
| 宏任務(wù)(macrotask) | 微任務(wù)(microtask) | |
|---|---|---|
| 誰發(fā)起的 | 宿主(Node、瀏覽器) | JS引擎 |
| 具體事件 | 1. script (可以理解為外層同步代碼) 2. setTimeout/setInterval 3. UI rendering/UI事件 4. postMessage,MessageChannel 5. setImmediate,I/O(Node.js) |
1. Promise 2. MutaionObserver 3. Object.observe(已廢棄;Proxy 對象替代) 4. process.nextTick(Node.js) |
| 誰先運行 | 后運行 | 先運行 |
| 會觸發(fā)新一輪Tick嗎 | 會 | 不會 |
19、vuex存儲在哪里,vuex存的數(shù)據(jù)頁面刷新之后,存的值還還在嗎?
--vuex存儲在內(nèi)存,用于組件中傳值,當(dāng)刷新頁面,存儲的值丟失
當(dāng)兩個組件共用一個數(shù)組時,其中一個變化了希望另一個組件也變化,localstorage做不到。
20、小程序的分包怎么做?
--開發(fā)者通過在 app.json subpackages字段聲明項目分包結(jié)構(gòu);
分包別名、獨立分包(independent)、分包預(yù)加載(preloadRule)
http://www.itdecent.cn/p/1d754a618084
21、賦值與解構(gòu)
--解構(gòu)賦值語法是一個 Javascript 表達(dá)式,這使得可以將值從數(shù)組或?qū)傩詮膶ο筇崛〉讲煌淖兞恐?br>
https://segmentfault.com/a/1190000016182444
22、跨域問題如何解決
23、vue源碼解析
http://www.itdecent.cn/p/c914ccd498e7
24、css變量
通常的最佳實踐是定義在根偽類 :root
:root {
--main-bg-color: brown;
}
element {
background-color: var(--main-bg-color);
}