2017年9月4日,參加360前端面試。一面、二面、三面都過了,很尷尬,卻在HR面被被pass了。
一面主要問的是基礎,js基礎一定要扎實:
1、vue1.0到vue2.0的變化?組件之間如何通信?
2、webpack主要做了什么?怎么打包的?
3、模塊化是做什么的?模塊化解決了什么問題?模塊化有什么優點呢?
AMD、CMD、commonJS這些要了解,再了解一些原理。
4、對象的淺復制以及如何繼承原型鏈?
var obj = {
a: 'liming'
}
淺復制:for in循環一下或者Object.assign(target, source)
它的原型鏈上還有一些屬性,怎么繼承原型鏈上的屬性
《JavaScript高級程序設計》第六章169頁上有講,兩種辦法
5、說了一長串,function、Object之間的關系,其實就是考原型鏈了
6、ES6 let const 與var之間區別
let、const擁有塊級作用域,let在塊級作用域中不存在變量聲明提升,塊級作用域中形成封閉的作用域,凡是在聲明之前使用變量都是會報錯
7、事件機制(事件捕獲、目標事件、事件冒泡) 事件委托
8、怎么樣好幾個ajax請求並列執行?
我說了poromise.all()和async以及await,然后就引出來了個問題
promise、async、await是怎么個回事呢?有什么關系嗎?
9、js是單線程的,有一個運算和耗時,會造成頁面卡頓,怎么讓他運行不影響后續代碼的運行?
說了web worker
10、HTTP一些常見的狀態碼?302
11、ES6 Class的原理?構造函數?
二面主要問了一些框架的問題:
1、還是webpack 、js模塊化
2、vue 2.0加上.sync修飾符有沒有破壞單項數據流?
3、vue源碼有沒有了解?Observe、Watcher以及指令怎么實現的?數據變化怎么處罰DOM更新的?
4、react和vue的區別?react虛擬DOM
5、職業規划?怎么學習的
三面:
怎么樣實現jstree那樣的東東?說說你的實現思路?