作者 | 木易楊 第 1 題:(滴滴、餓了么)寫 React / Vue 項目時為什么要在列表組件中寫 key,其作用是什么?第 2 題:`['1', '2', '3'].map(parseInt)` what & why ?第 3 題:(挖財)什么是防抖和節(jié)流?有什么區(qū)別?如何實現(xiàn)?第 4 題:介紹下 Set、Map、WeakSet 和 WeakMap 的區(qū)別? 第 5 題:介紹下深度優(yōu)先遍歷和廣度優(yōu)先遍歷,如何實現(xiàn)? 第 6 題:請分別用深度優(yōu)先思想和廣度優(yōu)先思想實現(xiàn)一個拷貝函數(shù)? 第 7 題:ES5/ES6 的繼承除了寫法以外還有什么區(qū)別?第 8 題:setTimeout、Promise、Async/Await 的區(qū)別 第 9 題:(頭條、微醫(yī))Async/Await 如何通過同步的方式實現(xiàn)異步 第 10 題:(頭條)異步筆試題請寫出下面代碼的運行結果: 第 11 題:(攜程)算法手寫題
第 12 題:(滴滴、挖財、微醫(yī)、??担㎎S 異步解決方案的發(fā)展歷程以及優(yōu)缺點。第 13 題:(微醫(yī))Promise 構造函數(shù)是同步執(zhí)行還是異步執(zhí)行,那么 then 方法呢? 第 14 題:(兌吧)情人節(jié)福利題,如何實現(xiàn)一個 new 第 15 題:(網(wǎng)易)簡單講解一下http2的多路復用 第 16 題:談談你對TCP三次握手和四次揮手的理解第 17 題:A、B 機器正常連接后,B 機器突然重啟,問 A 此時處于 TCP 什么狀態(tài)
第 18 題:(微醫(yī))React 中 setState 什么時候是同步的,什么時候是異步的?第 19 題:React setState 筆試題,下面的代碼輸出什么?
第 20 題:介紹下 npm 模塊安裝機制,為什么輸入 npm install 就可以自動安裝對應的模塊? 第 21 題:有以下 3 個判斷數(shù)組的方法,請分別介紹它們之間的區(qū)別和優(yōu)劣
第 22 題:介紹下重繪和回流(Repaint & Reflow),以及如何進行優(yōu)化第 23 題:介紹下觀察者模式和訂閱-發(fā)布模式的區(qū)別,各自適用于什么場景第 24 題:聊聊 Redux 和 Vuex 的設計思想第 25 題:說說瀏覽器和 Node 事件循環(huán)的區(qū)別 第 26 題:介紹模塊化發(fā)展歷程。可從IIFE、AMD、CMD、CommonJS、UMD、webpack(require.ensure)、ES Module、<script type='module'> 這幾個角度考慮。 第 27 題:全局作用域中,用 const 和 let 聲明的變量不在 window 上,那到底在哪里?如何去獲???。第 28 題:cookie 和 token 都存放在 header 中,為什么不會劫持 token?第 29 題:聊聊 Vue 的雙向數(shù)據(jù)綁定,Model 如何改變 View,View 又是如何改變 Model 的。第 30 題:兩個數(shù)組合并成一個數(shù)組請把兩個數(shù)組 ['A1', 'A2', 'B1', 'B2', 'C1', 'C2', 'D1', 'D2'] 和 ['A', 'B', 'C', 'D'],合并為 ['A1', 'A2', 'A', 'B1', 'B2', 'B', 'C1', 'C2', 'C', 'D1', 'D2', 'D']。 第 31 題:改造下面的代碼,使之輸出0 - 9,寫出你能想到的所有解法。 第 32 題:Virtual DOM 真的比操作原生 DOM 快嗎?談談你的想法。第 33 題:下面的代碼打印什么內容,為什么?
第 34 題:簡單改造下面的代碼,使之分別打印 10 和 20 第 35 題:瀏覽器緩存讀取規(guī)則可以分成 Service Worker、Memory Cache、Disk Cache 和 Push Cache,那請求的時候 from memory cache 和 from disk cache 的依據(jù)是什么,哪些數(shù)據(jù)什么時候存放在 Memory Cache 和 Disk Cache中? 第 36 題:使用迭代的方式實現(xiàn) flatten 函數(shù)。第 37 題:為什么 Vuex 的 mutation 和 Redux 的 reducer 中不能做異步操作?第 38 題:(京東)下面代碼中 a 在什么情況下會打印 1?
第 39 題:介紹下 BFC 及其應用。第 40 題:在 Vue 中,子組件為何不可以修改父組件傳遞的 Prop如果修改了,Vue 是如何監(jiān)控到屬性的修改并給出警告的。 第 41 題:下面代碼輸出什么 第 42 題:(喜馬拉雅)實現(xiàn)一個 sleep 函數(shù)比如 sleep(1000) 意味著等待1000毫秒,可從 Promise、Generator、Async/Await 等角度實現(xiàn) 第 43 題:使用 sort() 對數(shù)組 [3, 15, 8, 29, 102, 22] 進行排序,輸出結果第 44 題:介紹 HTTPS 握手過程第 45 題:HTTPS 握手過程中,客戶端如何驗證證書的合法性第 46 題:輸出以下代碼執(zhí)行的結果并解釋為什么
第 47 題:雙向綁定和 Vuex 是否沖突第 48 題:call 和 apply 的區(qū)別是什么,哪個性能更好一些第 49 題:為什么通常在發(fā)送數(shù)據(jù)埋點請求的時候使用的是 1x1 像素的透明 gif 圖片?第 50 題:(百度)實現(xiàn) (5).add(3).minus(2) 功能。
第 51 題:Vue 的響應式原理中 Object.defineProperty 有什么缺陷?為什么在 Vue3.0 采用了 Proxy,拋棄了 Object.defineProperty? 第 52 題:怎么讓一個 div 水平垂直居中第 53 題:輸出以下代碼的執(zhí)行結果并解釋為什么 第 54 題:冒泡排序如何實現(xiàn),時間復雜度是多少, 還可以如何改進?第 55 題:某公司 1 到 12 月份的銷售額存在一個對象里面如下:{1:222, 2:123, 5:888},請把數(shù)據(jù)處理為如下結構:[222, 123, null, null, 888, null, null, null, null, null, null, null]。 第 56 題:要求設計 LazyMan 類,實現(xiàn)以下功能。
第 57 題:分析比較 opacity: 0、visibility: hidden、display: none 優(yōu)劣和適用場景。第 58 題:箭頭函數(shù)與普通函數(shù)(function)的區(qū)別是什么?構造函數(shù)(function)可以使用 new 生成實例,那么箭頭函數(shù)可以嗎?為什么?第 59 題:給定兩個數(shù)組,寫一個方法來計算它們的交集。
第 60 題:已知如下代碼,如何修改才能讓圖片寬度為 300px ?注意下面代碼不可修改。
第 61 題:介紹下如何實現(xiàn) token 加密第 62 題:redux 為什么要把 reducer 設計成純函數(shù)第 63 題:如何設計實現(xiàn)無縫輪播第 64 題:模擬實現(xiàn)一個 Promise.finally第 65 題:`a.b.c.d` 和 `a['b']['c']['d']`,哪個性能更高?第 66 題:ES6 代碼轉成 ES5 代碼的實現(xiàn)思路是什么第 67 題:數(shù)組編程題隨機生成一個長度為 10 的整數(shù)類型的數(shù)組,例如 [2, 10, 3, 4, 5, 11, 10, 11, 20],將其排列成一個新數(shù)組,要求新數(shù)組形式如下,例如 [[2, 3, 4, 5], [10, 11], [20]]。 第 68 題:如何解決移動端 Retina 屏 1px 像素問題第 69 題:如何把一個字符串的大小寫取反(大寫變小寫小寫變大寫),例如 ’AbC' 變成 'aBc' 。第 70 題:介紹下 webpack 熱更新原理,是如何做到在不刷新瀏覽器的前提下更新頁面的。第 71 題:實現(xiàn)一個字符串匹配算法,從長度為 n 的字符串 S 中,查找是否存在字符串 T,T 的長度是 m,若存在返回所在位置。第 72 題:為什么普通 `for` 循環(huán)的性能遠遠高于 `forEach` 的性能,請解釋其中的原因。第 73 題:介紹下 BFC、IFC、GFC 和 FFC第 74 題:使用 JavaScript Proxy 實現(xiàn)簡單的數(shù)據(jù)綁定第 75 題:數(shù)組里面有10萬個數(shù)據(jù),取第一個元素和第10萬個元素的時間相差多少第 76 題:輸出以下代碼運行結果 第 77 題:算法題「旋轉數(shù)組」
第 78 題:Vue 的父組件和子組件生命周期鉤子執(zhí)行順序是什么?第 79 題:input 搜索如何防抖,如何處理中文輸入?第 80 題:介紹下 Promise.all 使用、原理實現(xiàn)及錯誤處理?第 81 題:打印出 1 - 10000 之間的所有對稱數(shù)
第 82 題:周一算法題之「移動零」給定一個數(shù)組 nums,編寫一個函數(shù)將所有 0 移動到數(shù)組的末尾,同時保持非零元素的相對順序。 示例: 說明:
第 83 題:var、let 和 const 區(qū)別的實現(xiàn)原理是什么第 84 題:請實現(xiàn)一個 add 函數(shù),滿足以下功能。第 85 題:react-router 里的 <Link> 標簽和 <a> 標簽有什么區(qū)別
第 86 題:(京東、快手)周一算法題之「兩數(shù)之和」給定一個整數(shù)數(shù)組和一個目標值,找出數(shù)組中和為目標值的兩個數(shù)。 你可以假設每個輸入只對應一種答案,且同樣的元素不能被重復利用。 示例: 第 87 題:在輸入框中如何判斷輸入的是一個正確的網(wǎng)址。第 88 題:實現(xiàn) convert 方法,把原始 list 轉換成樹形結構,要求盡可能降低時間復雜度以下數(shù)據(jù)結構中,id 代表部門編號,name 是部門名稱,parentId 是父部門編號,為 0 代表一級部門,現(xiàn)在要求實現(xiàn)一個 convert 方法,把原始 list 轉換成樹形結構,parentId 為多少就掛載在該 id 的屬性 children 數(shù)組下,結構如下:
第 89 題:設計并實現(xiàn) Promise.race()第 90 題:實現(xiàn)模糊搜索結果的關鍵詞高亮顯示第 91 題:介紹下 HTTPS 中間人攻擊第 92 題:已知數(shù)據(jù)格式,實現(xiàn)一個函數(shù) fn 找出鏈條中所有的父級 id: 第 93 題:給定兩個大小為 m 和 n 的有序數(shù)組 nums1 和 nums2。請找出這兩個有序數(shù)組的中位數(shù)。要求算法的時間復雜度為 O(log(m+n))。示例 1:
中位數(shù)是 2.0 示例 2:
中位數(shù)是(2 + 3) / 2 = 2.5 第 94 題:vue 在 v-for 時給每項元素綁定事件需要用事件代理嗎?為什么?第 95 題:模擬實現(xiàn)一個深拷貝,并考慮對象相互引用以及 Symbol 拷貝的情況第 96 題:介紹下前端加密的常見場景和方法第 97 題:React 和 Vue 的 diff 時間復雜度從 O(n^3) 優(yōu)化到 O(n) ,那么 O(n^3) 和 O(n) 是如何計算出來的?第 98 題:(京東)寫出如下代碼的打印結果 第 99 題:(bilibili)編程算法題
第 100 題:(京東)請寫出如下代碼的打印結果
作者簡介:木易楊,網(wǎng)易高級前端工程師,跟著我每周重點攻克一個前端面試重難點。讓我?guī)阕哌M高級前端的世界,在進階的路上,共勉! |
|