结果:百度二面后收到oc(此时距离裸辞5天);字节正常流程三面+hr,收到offer(此时距离裸辞10天),决定入职;阿里走完技术面(技术四面),看反馈是交叉面已经过了,等待hr面。
背景描述:今年春招刚开始时,于三月初入职网易,干了两个半月后,因业务调整近期从网易离职,然后辞职后开始找下家实习,争取一下最后的直接转正机会。(周五离职,没怎么复习就开始上了,周六开始面,连续七天。。。对!周六周天也在面试,不得不说面试官太狠了。。。)
面试有相当一段时间都在聊项目,这个因人而异就不多说了。面试整体感觉没有特殊的面试题,都比较友好常规。
记不住具体的了,混一起说了。。。
js 方面
- for of / for in 区别,for of原理,为什么引入迭代器,对象什么时候可以使用for of? symbol.iterator 返回的数据类型是什么?一般使用for in需要注意什么?为什么要用obj.hasOwnproperty?
- promise用过么,一个特别麻烦的promise+setTimeout让把输出结果写出来,这类题好多,把握下同步和异步就成。它解决了什么问题?生成器函数是怎么做到的?有想过为什么是迭代器么?协程可以多说下么?es7引入的async的原理是什么?
- js 的垃圾回收能说说么,为什么要分为旧生代和新生代,它们的回收算法是什么。知道内存泄露么?内存泄漏是怎么发生的?
- 闭包是什么?它是怎么形成的,能从词法分析角度说说么?
- new 绑定过程
Function.prototype.a = 1;
Object.prototype.b = 2;
function Test(){}
let t = new Test();
t.a? t.b?
- this 相关,输出结果是什么,为什么?this存在的问题是什么,箭头函数的this为什么指向外部,剪头函数没有执行上下文能展开说一下过程吗?
var obj = {
fn: function(){
console.log(this) //this->
return ()=>{
console.log(this) // this->
(function(){console.log(this)})(); //this->window
setTimeout(function(){console.log(this)},1); //this->
}
}
}
obj.fn()();
- 词法分析相关,输出结果是什么,为什么?(其实这个变了好多次,从简单到难。。。)
var a = 1;
(function(a){
alert(a++);
let a = 2;
})(a);
alert(++a);
//1,3; NAN,2; NAN,2; 1,2
- let const var 区别,为什么下面代码不会报错?还有点let不会默认绑定到window之类的
const a = {};
a.b = 1;
- symbol.iterator symbol.hasInstance, symbol.toPrimitive 的作用是什么?
css 问的确实不多
- flex用的多么?flex-shrink flex-grow 是什么意思?
- css 选择器 A B 和 A > B 的区别
浏览器相关
- 说说从输入url到页面出现经历了什么,越详细越好
- csrf xss 攻击分别说说是什么,以及怎么防范吧?
- http缓存说一下?
- https的原理能不能说一下
- 说说你知道的http状态码吧
- http2.0 http3.0分别引入了什么,解决了什么问题呢?
vue相关
- vue与react区别
- vue变换侦测原理
- vue为什么引入虚拟dom
- vue 3.0 出现了什么新东西
- vue虚拟dom与传统二叉树更新有什么区别
- vue的key的作用是什么
- 仿照vue模式,重写一下一个数组的push方法,实现响应式追踪,你会怎么做?
算法题部分
-
[{id:1, name: 1, parent:1000}, {id:1, name: 1, parent:1000}]把它变成树形结构,要求O(n)复杂度 -
手写 柯里化函数
-
实现indexOf函数
-
想不起来了,都是easy&middle难度反正。。。