金三銀四招聘季,筆者也是去面試了一些公司,下面是記錄最近面試阿里的一個部門,和你們分享一下。筆者17年畢業,目前工做經驗算上實習的話差很少有2年半左右,面了一個3-5年經驗的崗位,整體來講確實大廠基本上不少都是問的基礎題,因此你們若是想要找工做的話能夠好好準備下基礎知識。javascript
前端工程化除了提高咱們的開發體驗外,還要提高用戶體驗和產品性能,用「軟件工程」的角度去回答問題css
IE盒模型和標準盒模型html
強緩存和協商緩存前端
強緩存:vue
兩個都返回之後者爲準,expries因爲是拿本地時間和返回的服務器時間作比較,因此會存在偏差java
協商緩存:react
cookie和LocalStorage和SessionStoragewebpack
//方式一(利用延展函數)
Math.max(null,...[1,2,4,32]);
//方式二(排序取第一個)
[1,2,3,5].sort(function(a,b){
return b - a;
})[0];
複製代碼
這個主要仍是props在組件內部不可變,只能經過父傳子改變,state只能經過setState改變nginx
這個的話要知道宏任務隊列和微任務隊列,宏任務隊列在每次的事件循環中只執行一個,微任務隊列在一次事件循環中會所有執行完畢,還有幾個宏任務和微任務以下: 宏任務macro-task(task)包括:web
微任務micro-task(job)包括:
對react的理解,和vue對比
設計一個spa要考慮哪些因素
這個也是一個開放題目,大體從如下幾點回答
這個我提了一個之前項目裏面作的對幾千行表格滾動加載的優化,後面還問了關於總體項目優化的一些東西,主要仍是從CDN,資源合併壓縮,升級成http2,非核心代碼異步加載,利用瀏覽器緩存這些來回答
這個當時問了4xx以上的幾個狀態碼,比較簡單
能夠經過Proxy
,vue3.0也是計劃用這個來代替的,當時腦子一抽都忘記了,後來提醒了一下也想起來了
這個是一個開放題目,面試官指望前端後端都說說,前端的話主要仍是從定時器setInterval不許,須要不停的想服務器校準時間,還有一個是避免重複發請求,後端的話講了一些redis緩存和異步隊列,nginx負載均衡這些扯了一堆,網上也有一些答案,你們能夠自行谷歌。
//這裏提供一個filter的寫法
Array.prototype.filters = function filter(fun){
var arr = this;
var filterArr = [];
for(var i = 0,len = arr.length;i < len; i ++){
if(callback(i,arr[i],arr)){
filterArr.push(arr[i]);
}
}
return filterArr;
}
function callback(index,item,arr){
return item > 5;
}
[1,2,3,4,78].filters(callback)
複製代碼
這個的話須要去看一下require或者seajs這塊的實現方式,大體上面是,寫的還比較簡單,要深刻了解的話能夠去看一些網上的文章:
var a1,b2;
a1 = {c:1};
b2 = a1;
b2.c = 2;
alert(b2.c);
a1 = {c:3};
alert(b2.c);
a1.c = 4;
alert(b2.c);
複製代碼
接下來就是HR面了,大體跟你聊聊這個部門的業務和我對於這個部門感興趣的點,還有一些是我之前的工做經歷