《前端 100 問:能搞懂80%的請把簡歷給我》
引言
半年時間,幾千人參與,精選大廠前端面試高頻 100 題,這就是「壹題」。
在 2019 年 1 月 21 日這天,「壹題」項目正式開始,在這之后每個工作日都會出一道高頻面試題,主要涵蓋阿里、騰訊、頭條、百度、網(wǎng)易等大公司和常見題型。得益于大家熱情參與,現(xiàn)在每道題都有很多答案,提供的解題思路和答案也大大增長了我的見識,到現(xiàn)在已累積 100 道題目,『 8000+ 』Star 了,可以說你面試中遇到過的題目,在這里肯定能發(fā)現(xiàn)熟悉的身影。
后期計劃除了持續(xù)更新「壹題」之外,還將整理非常詳細的答案解析,提供完整的思考鏈路,幫助大家更好的理解題目,以及題目背后的知識,「我們的目標不是背題,而是通過題目查漏補缺,溫故知新」。
更多更全更詳細的每日一題和答案解析,戳這里查看
第 1 - 10 題
第 1 題:(滴滴、餓了么)寫 React / Vue 項目時為什么要在列表組件中寫 key,其作用是什么?
解析:第 1 題
第 2 題:['1', '2', '3'].map(parseInt) what & why ?
解析:第 2 題
第 3 題:(挖財)什么是防抖和節(jié)流?有什么區(qū)別?如何實現(xiàn)?
解析:第 3 題
第 4 題:介紹下 Set、Map、WeakSet 和 WeakMap 的區(qū)別?
解析:第 4 題
第 5 題:介紹下深度優(yōu)先遍歷和廣度優(yōu)先遍歷,如何實現(xiàn)?
解析:第 5 題
第 6 題:請分別用深度優(yōu)先思想和廣度優(yōu)先思想實現(xiàn)一個拷貝函數(shù)?
解析:第 6 題
第 7 題:ES5/ES6 的繼承除了寫法以外還有什么區(qū)別?
解析:第 7 題
第 8 題:setTimeout、Promise、Async/Await 的區(qū)別
解析:第 8 題
第 9 題:(頭條、微醫(yī))Async/Await 如何通過同步的方式實現(xiàn)異步
解析:第 9 題
第 10 題:(頭條)異步筆試題
請寫出下面代碼的運行結(jié)果
async function async1() {
console.log('async1 start');
await async2();
console.log('async1 end');
}
async function async2() {
console.log('async2');
}
console.log('script start');
setTimeout(function() {
console.log('setTimeout');
}, 0)
async1();
new Promise(function(resolve) {
console.log('promise1');
resolve();
}).then(function() {
console.log('promise2');
});
console.log('script end');
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
解析:第 10 題
第 11 - 20 題
第 11 題:(攜程)算法手寫題
已知如下數(shù)組:
var arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10];
編寫一個程序?qū)?shù)組扁平化去并除其中重復(fù)部分數(shù)據(jù),最終得到一個升序且不重復(fù)的數(shù)組
解析:第 11 題
第 12 題:(滴滴、挖財、微醫(yī)、??担㎎S 異步解決方案的發(fā)展歷程以及優(yōu)缺點。
解析:第 12 題
第 13 題:(微醫(yī))Promise 構(gòu)造函數(shù)是同步執(zhí)行還是異步執(zhí)行,那么 then 方法呢?
解析:第 13 題
第 14 題:(兌吧)情人節(jié)福利題,如何實現(xiàn)一個 new
解析:第 14 題
第 15 題:(網(wǎng)易)簡單講解一下http2的多路復(fù)用
解析:第 15 題
第 16 題:談?wù)勀銓CP三次握手和四次揮手的理解
解析:第 16 題
第 17 題:A、B 機器正常連接后,B 機器突然重啟,問 A 此時處于 TCP 什么狀態(tài)
如果A 與 B 建立了正常連接后,從未相互發(fā)過數(shù)據(jù),這個時候 B 突然機器重啟,問 A 此時處于 TCP 什么狀態(tài)?如何消除服務(wù)器程序中的這個狀態(tài)?(超綱題,了解即可)
解析:第 17 題
第 18 題:(微醫(yī))React 中 setState 什么時候是同步的,什么時候是異步的?
解析:第 18 題
第 19 題:React setState 筆試題,下面的代碼輸出什么?
class Example extends React.Component {
constructor() {
super();
this.state = {
val: 0
};
}
componentDidMount() {
this.setState({val: this.state.val + 1});
console.log(this.state.val); // 第 1 次 log
<span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">setState</span><span class="token punctuation">(</span><span class="token punctuation">{</span>val<span class="token punctuation">:</span> <span class="token keyword">this</span><span class="token punctuation">.</span>state<span class="token punctuation">.</span>val <span class="token operator">+</span> <span class="token number">1</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token keyword">this</span><span class="token punctuation">.</span>state<span class="token punctuation">.</span>val<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 第 2 次 log</span>
<span class="token function">setTimeout</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
<span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">setState</span><span class="token punctuation">(</span><span class="token punctuation">{</span>val<span class="token punctuation">:</span> <span class="token keyword">this</span><span class="token punctuation">.</span>state<span class="token punctuation">.</span>val <span class="token operator">+</span> <span class="token number">1</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token keyword">this</span><span class="token punctuation">.</span>state<span class="token punctuation">.</span>val<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 第 3 次 log</span>
<span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">setState</span><span class="token punctuation">(</span><span class="token punctuation">{</span>val<span class="token punctuation">:</span> <span class="token keyword">this</span><span class="token punctuation">.</span>state<span class="token punctuation">.</span>val <span class="token operator">+</span> <span class="token number">1</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token keyword">this</span><span class="token punctuation">.</span>state<span class="token punctuation">.</span>val<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 第 4 次 log</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
}
render() {
return null;
}
};
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
解析:第 19 題
第 20 題:介紹下 npm 模塊安裝機制,為什么輸入 npm install 就可以自動安裝對應(yīng)的模塊?
解析:第 20 題
第 21 - 30 題
第 21 題:有以下 3 個判斷數(shù)組的方法,請分別介紹它們之間的區(qū)別和優(yōu)劣
Object.prototype.toString.call() 、 instanceof 以及 Array.isArray()
解析:第 21 題
第 22 題:介紹下重繪和回流(Repaint & Reflow),以及如何進行優(yōu)化
解析:第 22 題
第 23 題:介紹下觀察者模式和訂閱-發(fā)布模式的區(qū)別,各自適用于什么場景
解析:第 23 題
第 24 題:聊聊 Redux 和 Vuex 的設(shè)計思想
解析:第 24 題
第 25 題:說說瀏覽器和 Node 事件循環(huán)的區(qū)別
解析:第 25 題
第 26 題:介紹模塊化發(fā)展歷程
可從IIFE、AMD、CMD、CommonJS、UMD、webpack(require.ensure)、ES Module、<script type="module">
這幾個角度考慮。
解析:第 26 題
第 27 題:全局作用域中,用 const 和 let 聲明的變量不在 window 上,那到底在哪里?如何去獲???。
解析:第 27 題
第 28 題:cookie 和 token 都存放在 header 中,為什么不會劫持 token?
解析:第 28 題
第 29 題:聊聊 Vue 的雙向數(shù)據(jù)綁定,Model 如何改變 View,View 又是如何改變 Model 的
解析:第 29 題
第 31 - 40 題
第 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’]。
解析: 第 30 題
第 31 題:改造下面的代碼,使之輸出0 - 9,寫出你能想到的所有解法。
for (var i = 0; i< 10; i++){
setTimeout(() => {
console.log(i);
}, 1000)
}
- 1
- 2
- 3
- 4
- 5
解析:第 31 題
第 32 題:Virtual DOM 真的比操作原生 DOM 快嗎?談?wù)勀愕南敕ā?/h3>
解析:第 32 題
第 33 題:下面的代碼打印什么內(nèi)容,為什么?
var b = 10;
(function b(){
b = 20;
console.log(b);
})();
- 1
- 2
- 3
- 4
- 5
解析:第 33 題
第 34 題:簡單改造下面的代碼,使之分別打印 10 和 20。
var b = 10;
(function b(){
b = 20;
console.log(b);
})();
- 1
- 2
- 3
- 4
- 5
解析:第 34 題
第 35 題:瀏覽器緩存讀取規(guī)則
可以分成 Service Worker、Memory Cache、Disk Cache 和 Push Cache,那請求的時候 from memory cache 和 from disk cache 的依據(jù)是什么,哪些數(shù)據(jù)什么時候存放在 Memory Cache 和 Disk Cache中?
解析:第 35 題
第 36 題:使用迭代的方式實現(xiàn) flatten 函數(shù)。
解析:第 36 題
第 37 題:為什么 Vuex 的 mutation 和 Redux 的 reducer 中不能做異步操作?
解析:第 37 題
第 38 題:(京東)下面代碼中 a 在什么情況下會打印 1?
var a = ?;
if(a == 1 && a == 2 && a == 3){
console.log(1);
}
- 1
- 2
- 3
- 4
解析:第 38 題
第 39 題:介紹下 BFC 及其應(yīng)用。
解析:第 39 題
第 40 題:在 Vue 中,子組件為何不可以修改父組件傳遞的 Prop
如果修改了,Vue 是如何監(jiān)控到屬性的修改并給出警告的。
解析:第 40 題
第 41 - 50 題
第 41 題:下面代碼輸出什么
var a = 10;
(function () {
console.log(a)
a = 5
console.log(window.a)
var a = 20;
console.log(a)
})()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
解析:第 41題
第 42 題:實現(xiàn)一個 sleep 函數(shù)
比如 sleep(1000) 意味著等待1000毫秒,可從 Promise、Generator、Async/Await 等角度實現(xiàn)
解析:第 42 題
第 43 題:使用 sort() 對數(shù)組 [3, 15, 8, 29, 102, 22] 進行排序,輸出結(jié)果
解析:第 43 題
第 44 題:介紹 HTTPS 握手過程
解析:第 44 題
第 45 題:HTTPS 握手過程中,客戶端如何驗證證書的合法性
解析:第 45 題
第 46 題:輸出以下代碼執(zhí)行的結(jié)果并解釋為什么
var obj = {
'2': 3,
'3': 4,
'length': 2,
'splice': Array.prototype.splice,
'push': Array.prototype.push
}
obj.push(1)
obj.push(2)
console.log(obj)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
解析:第 46 題
第 47 題:雙向綁定和 vuex 是否沖突
解析:第 47 題
第 48 題:call 和 apply 的區(qū)別是什么,哪個性能更好一些
解析:第 48 題
第 49 題:為什么通常在發(fā)送數(shù)據(jù)埋點請求的時候使用的是 1x1 像素的透明 gif 圖片?
解析:第 49 題
第 50 題:(百度)實現(xiàn) (5).add(3).minus(2) 功能。
例: 5 + 3 - 2,結(jié)果為 6
解析:第 50 題
第 51 - 60 題
第 51 題:Vue 的響應(yīng)式原理中 Object.defineProperty 有什么缺陷?
為什么在 Vue3.0 采用了 Proxy,拋棄了 Object.defineProperty?
解析:第 51 題
第 52 題:怎么讓一個 div 水平垂直居中
解析:第 52 題
第 53 題:輸出以下代碼的執(zhí)行結(jié)果并解釋為什么
var a = {n: 1};
var b = a;
a.x = a = {n: 2};
console.log(a.x)
console.log(b.x)
- 1
- 2
- 3
- 4
- 5
- 6
解析:第 53 題
第 54 題:冒泡排序如何實現(xiàn),時間復(fù)雜度是多少, 還可以如何改進?
解析:第 54 題
第 55 題:某公司 1 到 12 月份的銷售額存在一個對象里面
如下:{1:222, 2:123, 5:888},請把數(shù)據(jù)處理為如下結(jié)構(gòu):[222, 123, null, null, 888, null, null, null, null, null, null, null]。
解析:第 55 題
第 56 題:要求設(shè)計 LazyMan 類,實現(xiàn)以下功能。
LazyMan('Tony');
// Hi I am Tony
LazyMan(‘Tony’).sleep(10).eat(‘lunch’);
// Hi I am Tony
// 等待了10秒…
// I am eating lunch
LazyMan(‘Tony’).eat(‘lunch’).sleep(10).eat(‘dinner’);
// Hi I am Tony
// I am eating lunch
// 等待了10秒…
// I am eating diner
LazyMan(‘Tony’).eat(‘lunch’).eat(‘dinner’).sleepFirst(5).sleep(10).eat(‘junk food’);
// Hi I am Tony
// 等待了5秒…
// I am eating lunch
// I am eating dinner
// 等待了10秒…
// I am eating junk food
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
解析:第 56 題
第 57 題:分析比較 opacity: 0、visibility: hidden、display: none 優(yōu)劣和適用場景。
解析:第 57 題
第 58 題:箭頭函數(shù)與普通函數(shù)(function)的區(qū)別是什么?構(gòu)造函數(shù)(function)可以使用 new 生成實例,那么箭頭函數(shù)可以嗎?為什么?
解析:第 58 題
第 59 題:給定兩個數(shù)組,寫一個方法來計算它們的交集。
例如:給定 nums1 = [1, 2, 2, 1],nums2 = [2, 2],返回 [2, 2]。
解析:第 59 題
第 60 題:已知如下代碼,如何修改才能讓圖片寬度為 300px ?注意下面代碼不可修改。
<img src="1.jpg" style="width:480px!important;”>
解析:第 60 題
第 61 - 70 題
第 61 題:介紹下如何實現(xiàn) token 加密
解析:第 61 題
第 62 題:redux 為什么要把 reducer 設(shè)計成純函數(shù)
解析:第 62 題
第 63 題:如何設(shè)計實現(xiàn)無縫輪播
解析:第 63 題
第 64 題:模擬實現(xiàn)一個 Promise.finally
解析:第 64 題
第 65 題: a.b.c.d 和 a['b']['c']['d'],哪個性能更高?
解析:第 65 題
第 66 題:ES6 代碼轉(zhuǎn)成 ES5 代碼的實現(xiàn)思路是什么
解析:第 66 題
第 67 題:數(shù)組編程題
隨機生成一個長度為 10 的整數(shù)類型的數(shù)組,例如 [2, 10, 3, 4, 5, 11, 10, 11, 20]
,將其排列成一個新數(shù)組,要求新數(shù)組形式如下,例如 [[2, 3, 4, 5], [10, 11], [20]]
。
解析:第 67 題
第 68 題: 如何解決移動端 Retina 屏 1px 像素問題
解析:第 68 題
第 69 題: 如何把一個字符串的大小寫取反(大寫變小寫小寫變大寫),例如 ’AbC’ 變成 ‘a(chǎn)Bc’ 。
解析:第 69 題
第 70 題: 介紹下 webpack 熱更新原理,是如何做到在不刷新瀏覽器的前提下更新頁面的
解析:第 70 題
第 71 - 80 題
第 71 題: 實現(xiàn)一個字符串匹配算法,從長度為 n 的字符串 S 中,查找是否存在字符串 T,T 的長度是 m,若存在返回所在位置。
解析:第 71 題
第 72 題: 為什么普通 for 循環(huán)的性能遠遠高于 forEach 的性能,請解釋其中的原因。
解析:第 72 題
第 73 題: 介紹下 BFC、IFC、GFC 和 FFC
解析:第 73 題
第 74 題: 使用 JavaScript Proxy 實現(xiàn)簡單的數(shù)據(jù)綁定
解析:第 74 題
第 75 題:數(shù)組里面有10萬個數(shù)據(jù),取第一個元素和第10萬個元素的時間相差多少
解析:第 75 題
第 76 題:輸出以下代碼運行結(jié)果
// example 1
var a={}, b='123', c=123;
a[b]='b';
a[c]='c';
console.log(a[b]);
––––––––––-
// example 2
var a={}, b=Symbol(‘123’), c=Symbol(‘123’);
a[b]=‘b’;
a[c]=‘c’;
console.log(a[b]);
––––––––––-
// example 3
var a={}, b={key:‘123’}, c={key:‘456’};
a[b]=‘b’;
a[c]=‘c’;
console.log(a[b]);
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
解析:第 76 題
第 77 題:算法題「旋轉(zhuǎn)數(shù)組」
給定一個數(shù)組,將數(shù)組中的元素向右移動 k 個位置,其中 k 是非負數(shù)。
示例 1:
輸入: [1, 2, 3, 4, 5, 6, 7] 和 k = 3
輸出: [5, 6, 7, 1, 2, 3, 4]
解釋:
向右旋轉(zhuǎn) 1 步: [7, 1, 2, 3, 4, 5, 6]
向右旋轉(zhuǎn) 2 步: [6, 7, 1, 2, 3, 4, 5]
向右旋轉(zhuǎn) 3 步: [5, 6, 7, 1, 2, 3, 4]
- 1
- 2
- 3
- 4
- 5
- 6
示例 2:
輸入: [-1, -100, 3, 99] 和 k = 2
輸出: [3, 99, -1, -100]
解釋:
向右旋轉(zhuǎn) 1 步: [99, -1, -100, 3]
向右旋轉(zhuǎn) 2 步: [3, 99, -1, -100]
- 1
- 2
- 3
- 4
- 5
解析:第 77 題
第 78 題:Vue 的父組件和子組件生命周期鉤子執(zhí)行順序是什么
解析:第 78 題
第 79 題:input 搜索如何防抖,如何處理中文輸入
解析:第 79 題
第 80 題:介紹下 Promise.all 使用、原理實現(xiàn)及錯誤處理
解析:第 80 題
第 81 - 90 題
第 81 題:打印出 1 - 10000 之間的所有對稱數(shù)
例如:121、1331 等
解析:第 81 題
第 82 題:周一算法題之「移動零」
給定一個數(shù)組 nums,編寫一個函數(shù)將所有 0 移動到數(shù)組的末尾,同時保持非零元素的相對順序。
示例:
輸入: [0,1,0,3,12] 輸出: [1,3,12,0,0]
- 1
- 2
說明:
必須在原數(shù)組上操作,不能拷貝額外的數(shù)組。
盡量減少操作次數(shù)。
解析:第 82 題
第 83 題:var、let 和 const 區(qū)別的實現(xiàn)原理是什么
解析:第 83 題
第 84 題:請實現(xiàn)一個 add 函數(shù),滿足以下功能。
add(1); // 1 add(1)(2); // 3 add(1)(2)(3);// 6 add(1)(2, 3); // 6 add(1, 2)(3); // 6 add(1, 2, 3); // 6
- 1
- 2
- 3
- 4
- 5
- 6
解析:第 84 題
第 85 題:react-router 里的 <Link> 標簽和 <a> 標簽有什么區(qū)別
如何禁掉
<a>
標簽?zāi)J事件,禁掉之后如何實現(xiàn)跳轉(zhuǎn)。
解析:第 85 題
第 86 題:(京東、快手)周一算法題之「兩數(shù)之和」
給定一個整數(shù)數(shù)組和一個目標值,找出數(shù)組中和為目標值的兩個數(shù)。
你可以假設(shè)每個輸入只對應(yīng)一種答案,且同樣的元素不能被重復(fù)利用。
示例:
給定 nums = [2, 7, 11, 15], target = 9
因為 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
- 1
- 2
- 3
- 4
解析:第 86 題
第 87 題:在輸入框中如何判斷輸入的是一個正確的網(wǎng)址。
解析:第 87 題
第 88 題:實現(xiàn) convert 方法,把原始 list 轉(zhuǎn)換成樹形結(jié)構(gòu),要求盡可能降低時間復(fù)雜度
以下數(shù)據(jù)結(jié)構(gòu)中,id 代表部門編號,name 是部門名稱,parentId 是父部門編號,為 0 代表一級部門,現(xiàn)在要求實現(xiàn)一個 convert 方法,把原始 list 轉(zhuǎn)換成樹形結(jié)構(gòu),parentId 為多少就掛載在該 id 的屬性 children 數(shù)組下,結(jié)構(gòu)如下:
// 原始 list 如下
let list =[
{id:1,name:'部門A',parentId:0},
{id:2,name:'部門B',parentId:0},
{id:3,name:'部門C',parentId:1},
{id:4,name:'部門D',parentId:1},
{id:5,name:'部門E',parentId:2},
{id:6,name:'部門F',parentId:3},
{id:7,name:'部門G',parentId:2},
{id:8,name:'部門H',parentId:4}
];
const result = convert(list, ...);
// 轉(zhuǎn)換后的結(jié)果如下
let result = [
{
id: 1,
name: ‘部門A’,
parentId: 0,
children: [
{
id: 3,
name: ‘部門C’,
parentId: 1,
children: [
{
id: 6,
name: ‘部門F’,
parentId: 3
}, {
id: 16,
name: ‘部門L’,
parentId: 3
}
]
},
{
id: 4,
name: ‘部門D’,
parentId: 1,
children: [
{
id: 8,
name: ‘部門H’,
parentId: 4
}
]
}
]
},
···
];
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
解析:第 88 題
第 89 題:設(shè)計并實現(xiàn) Promise.race()
解析:第 89 題
第 90 題:實現(xiàn)模糊搜索結(jié)果的關(guān)鍵詞高亮顯示
解析:第 90 題
第 91 - 100 題
第 91 題:介紹下 HTTPS 中間人攻擊
解析:第 91 題
第 92 題:已知數(shù)據(jù)格式,實現(xiàn)一個函數(shù) fn 找出鏈條中所有的父級 id
const value = '112' const fn = (value) => { ... } fn(value) // 輸出 [1, 11, 112]
- 1
- 2
- 3
- 4
- 5
解析:第 92 題
第 93 題:給定兩個大小為 m 和 n 的有序數(shù)組 nums1 和 nums2。請找出這兩個有序數(shù)組的中位數(shù)。要求算法的時間復(fù)雜度為 O(log(m+n))。
示例 1:
nums1 = [1, 3]
nums2 = [2]
- 1
- 2
中位數(shù)是 2.0
示例 2:
nums1 = [1, 2]
nums2 = [3, 4]
- 1
- 2
中位數(shù)是(2 + 3) / 2 = 2.5
解析:第 93 題
第 94 題:vue 在 v-for 時給每項元素綁定事件需要用事件代理嗎?為什么?
解析:第 94 題
第 95 題:模擬實現(xiàn)一個深拷貝,并考慮對象相互引用以及 Symbol 拷貝的情況
解析:第 95 題
第 96 題:介紹下前端加密的常見場景和方法
解析:第 96 題
第 97 題:React 和 Vue 的 diff 時間復(fù)雜度從 O(n^3) 優(yōu)化到 O(n) ,那么 O(n^3) 和 O(n) 是如何計算出來的?
解析:第 97 題
第 98 題:(京東)寫出如下代碼的打印結(jié)果
function changeObjProperty(o) {
o.siteUrl = "http://www.baidu.com"
o = new Object()
o.siteUrl = "http://www.google.com"
}
let webSite = new Object();
changeObjProperty(webSite);
console.log(webSite.siteUrl);
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
解析:第 98 題
第 99 題:(bilibili)編程算法題
用 JavaScript 寫一個函數(shù),輸入 int 型,返回整數(shù)逆序后的字符串。如:輸入整型 1234,返回字符串“4321”。要求必須使用遞歸函數(shù)調(diào)用,不能用全局變量,輸入函數(shù)必須只有一個參數(shù)傳入,必須返回字符串。
解析:第 99 題文章來源:http://www.zghlxwxcb.cn/news/detail-711247.html
第 100 題:(京東)請寫出如下代碼的打印結(jié)果
function Foo() { Foo.a = function() { console.log(1) } this.a = function() { console.log(2) } } Foo.prototype.a = function() { console.log(3) } Foo.a = function() { console.log(4) } Foo.a(); let obj = new Foo(); obj.a(); Foo.a();
備注: 本文轉(zhuǎn)自“木易楊說”,原文地址:https://blog.csdn.net/github_34708151/article/details/95165589
每道題源碼的序號在轉(zhuǎn)載時出現(xiàn)了問題,導(dǎo)致序號變成了單獨的行,老猿就不修改了,實在有不認可的請轉(zhuǎn)原文閱讀。文章來源地址http://www.zghlxwxcb.cn/news/detail-711247.html
到了這里,關(guān)于轉(zhuǎn):前端 100 問:能搞懂80%的請把簡歷給我的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!