金三银四招聘季,笔者也是去面试了一些公司,下面是记录最近面试阿里的一个部门,和你们分享一下。笔者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面了,大体跟你聊聊这个部门的业务和我对于这个部门感兴趣的点,还有一些是我之前的工做经历