日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

面試穩(wěn)了!集齊幾千名程序員精選的 100 道前端面試題!

 web3佬總圖書館 2019-07-11

作者 | 木易楊

640?wx_fmt=png

第 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 題:(攜程)算法手寫題

已知如下數(shù)組:

var arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10];

編寫一個程序將數(shù)組扁平化去并除其中重復部分數(shù)據(jù),最終得到一個升序且不重復的數(shù)組

第 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)

如果A 與 B 建立了正常連接后,從未相互發(fā)過數(shù)據(jù),這個時候 B 突然機器重啟,問 A 此時處于 TCP 什么狀態(tài)?如何消除服務器程序中的這個狀態(tài)?(超綱題,了解即可)

第 18 題:(微醫(yī))React 中 setState 什么時候是同步的,什么時候是異步的?

第 19 題:React setState 筆試題,下面的代碼輸出什么?

 

第 20 題:介紹下 npm 模塊安裝機制,為什么輸入 npm install 就可以自動安裝對應的模塊?

640?wx_fmt=png

第 21 題:有以下 3 個判斷數(shù)組的方法,請分別介紹它們之間的區(qū)別和優(yōu)劣

Object.prototype.toString.call() 、 instanceof 以及 Array.isArray()

第 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 的。

640?wx_fmt=png

第 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)控到屬性的修改并給出警告的。

640?wx_fmt=png

第 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) 功能。

例:5 + 3 - 2,結果為 6

 

640?wx_fmt=png

第 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ù)組,寫一個方法來計算它們的交集。

例如:給定 nums1 = [1, 2, 2, 1],nums2 = [2, 2],返回 [2, 2]。

第 60 題:已知如下代碼,如何修改才能讓圖片寬度為 300px ?注意下面代碼不可修改。

<img src='1.jpg' style='width:480px!important;”>

640?wx_fmt=png

第 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 熱更新原理,是如何做到在不刷新瀏覽器的前提下更新頁面的。

640?wx_fmt=png

第 71 題:實現(xiàn)一個字符串匹配算法,從長度為 n 的字符串 S 中,查找是否存在字符串 T,T 的長度是 m,若存在返回所在位置。

第 72 題:為什么普通 `for` 循環(huán)的性能遠遠高于 `forEach` 的性能,請解釋其中的原因。

640?wx_fmt=png

第 73 題:介紹下 BFC、IFC、GFC 和 FFC

第 74 題:使用 JavaScript Proxy 實現(xiàn)簡單的數(shù)據(jù)綁定

第 75 題:數(shù)組里面有10萬個數(shù)據(jù),取第一個元素和第10萬個元素的時間相差多少

第 76 題:輸出以下代碼運行結果

 

第 77 題:算法題「旋轉數(shù)組」

給定一個數(shù)組,將數(shù)組中的元素向右移動 k 個位置,其中 k 是非負數(shù)。

 

第 78 題:Vue 的父組件和子組件生命周期鉤子執(zhí)行順序是什么?

第 79 題:input 搜索如何防抖,如何處理中文輸入?

第 80 題:介紹下 Promise.all 使用、原理實現(xiàn)及錯誤處理?

640?wx_fmt=png

第 81 題:打印出 1 - 10000 之間的所有對稱數(shù)

例如:121、1331 等

第 82 題:周一算法題之「移動零」

給定一個數(shù)組 nums,編寫一個函數(shù)將所有 0 移動到數(shù)組的末尾,同時保持非零元素的相對順序。

示例:

 

說明:

  1. 必須在原數(shù)組上操作,不能拷貝額外的數(shù)組。

  2. 盡量減少操作次數(shù)。

第 83 題:var、let 和 const 區(qū)別的實現(xiàn)原理是什么

第 84 題:請實現(xiàn)一個 add 函數(shù),滿足以下功能。

第 85 題:react-router 里的 <Link> 標簽和 <a> 標簽有什么區(qū)別

如何禁掉 <a> 標簽默認事件,禁掉之后如何實現(xiàn)跳轉。

第 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)模糊搜索結果的關鍵詞高亮顯示

640?wx_fmt=jpeg

640?wx_fmt=png

第 91 題:介紹下 HTTPS 中間人攻擊

第 92 題:已知數(shù)據(jù)格式,實現(xiàn)一個函數(shù) fn 找出鏈條中所有的父級 id:

 

640?wx_fmt=jpeg

第 93 題:給定兩個大小為 m 和 n 的有序數(shù)組 nums1 和 nums2。請找出這兩個有序數(shù)組的中位數(shù)。要求算法的時間復雜度為 O(log(m+n))。

示例 1:

 

中位數(shù)是 2.0

示例 2:

小白Python的學習規(guī)劃,我只做了5件事!

https://edu.csdn.net/topic/python115?utm_source=csdn_bw

中位數(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)編程算法題

用 JavaScript 寫一個函數(shù),輸入 int 型,返回整數(shù)逆序后的字符串。如:輸入整型 1234,返回字符串“4321”。要求必須使用遞歸函數(shù)調用,不能用全局變量,輸入函數(shù)必須只有一個參數(shù)傳入,必須返回字符串。

第 100 題:(京東)請寫出如下代碼的打印結果

 

作者簡介:木易楊,網(wǎng)易高級前端工程師,跟著我每周重點攻克一個前端面試重難點。讓我?guī)阕哌M高級前端的世界,在進階的路上,共勉!

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多