字節跳動
一面
1.說出以下代碼的原型關系,以及 Object 和 Function 的原型關系
Function;
function test() {
}
var obj = new test();
__proto__ prototype
2.合並兩個已排序的鏈表:遞歸解法、迭代解法
3.判斷數組類型有哪些方法
4.webpack 常用 loader、plugin
5.Promise 中拋出異常能否被 catch 捕獲?
let promise = new Promise((resolve, reject) => {
throw new Error()
reject()
})
promise.catch(err => {
console.log(err)
})
6.馮諾依曼體系講講
7.線程與進程的區別
8.操作系統為什么要設計用戶態和內核態?
二面
1.講講模塊化規范
2.import 和 require 的區別
3.require 是如何解析路徑的?
4.模擬實現 new 操作符
5.算法:找出字符串中第一個不重復的字符
6.promise 考察
/*
用 promise 實現以下功能。
具體: fn1和fn2都是異步函數,f1、fn2同時執行,並且fn1、fn2的結果是 fn3的參數。當fn1或者fn2發生錯誤時,fn3照常執行,此時的參數為空。
*/
eg:
fn1 = async() => {
// 發送請求
const data = await sendRquest1();
return data;
}
fn2 = async() => {
// 發送請求
const data = await sendRquest2();
return data;
}
7.下面代碼的輸出,why?
'use strict';
var b = 2;
if (true) {
let a = 2;
var b = 3;
var c = 4;
const d = 5;
}
console.log(a);
console.log(b);
console.log(c);
console.log(d);
var d = 6;
8.節流防抖,寫代碼
9.列舉獲取 DOM 元素的方式
10.react 生命周期,HOC
三面
1.node 中間件原理
2.寫一個中間件,怎么使用?
3.webpack 打包整體流程
4.兩道簡單的算法題:層次遍歷二叉樹、反轉鏈表
5.項目中 cookie + redis 實現自動登錄怎么做的?
6.常見 web 安全問題,xss、csrf、sql 注入、數據庫加密、cookie 加密及防范措施
7.為啥學前端?
8.以后有什么打算?
9.有和別人協作的項目嗎?
拼多多
一面 電話面試
1.項目問題:IndexedDB 和 localStorage 使用的區別
2.圖片懶加載思路,監聽頁面滾動實現的,怎么做優化?除了節流?除了監聽頁面滾動有沒有其他方案?
3.前端監控是啥?讓你設計一個 SDK 給別人用(自己設計一個前端監控庫怎么做?)
4.添加事件處理程序有哪些方案?區別?
5.給一個 DOM 添加多個 click 事件,不能用 addEventListener,只用 onClick 咋整?
6.發布訂閱模式,嘴巴撕
7.聊天室用了 WebSocket,說一說
8.最后說第 5 個問題可以用發布訂閱的思路來實現
二面 微信視頻
1.自我介紹 balabalabala (說了看書和看視頻來學習前端)
2.平常看哪些書啊?
3.webpack 懂吧?說下用過的 loader 和 plugin
4.PWA 了解吧?說一下
4.node.js 用過是吧?說下中間件是啥?
5.ES6 用得多吧?說一下 ES6
6.說到了模塊化,require 與 import 的區別?
7.說到 require 會把加載過的模塊緩存在內存,說說這會導致些什么問題(內存暴增啥的,比方說我們暴露出一個對象,上萬個請求都往這個對象上添加屬性)
8.說說瀏覽器和 node.js 的事件循環機制
9.聊到設計模式,講講你知道哪些設計模式(舉《JavaScript 設計模式與開發實踐》中的例子,講了幾個感覺差不多了就不講了)
10.項目用到 PM2,介紹下
這些問題幾乎都可以在我的筆記中找到答案哦:https://github.com/ChenMingK/Blog