一面(40min)
-
css盒模型
-
两栏布局
-
for (var i = 0; i < 10; i++) { setTimeout(() => { console.log(i) }, 1000); } //输出结果以及间隔时间,改进
-
对 == 的 === 的区别的了解
-
[1] == [1] //说出输出结果以及为什么
-
实现一个深拷贝
-
介绍Vue响应式原理
-
Vue的异步更新
-
promise是什么,实现一下promise.all
-
ES6 module和CommonJS的区别
-
算法:二叉树反转
二面(50min)
-
项目中的鉴权如何实现的
-
整个登录的流程
-
token的结构,以及为什么不存在cookie里
-
因为我在说token的结构时,说到了组合加密一词,面试官又问了什么是对称加密,什么的非对称加密
-
跨域可以拿到cookie吗,怎么样才可以拿到,我就扯到了xss攻击还有csrf攻击
-
跨域是什么,如何解决
-
jsonp方式中,后端如何实现
-
聊一聊单页面应用,然后我就聊到了前端路由,介绍了hash以及history路由是如何实现的
-
算法:实现一个并发控制,有一个最大并发数,然后按照请求顺序依次打印。
看到这题,我就懵了。。。主要我对异步特别虚,没什么信心,尝试写了一下,发现写不下去,就跟面试官说我可能不太会,面试官也特别耐心,就给了我一个简化版本。
需求是:实现一个函数,这个函数的参数有三个数组,每个数组里是函数,每个函数会返回一个promise。实现数组中函数中返回的promise进行并发,然后等第一个数组执行完,再去执行第二个,最后执行第三个。最后把所有数组的结果拼接到一起返回。
之后我就用await+promise.all给大概实现了一下。然后面试官就再让我回过头去看那道题,我就把思路给面试官说了一下,代码稍微改动了一下(但最后面试官说代码可能还有些问题)。
三面(1h)
-
介绍一下项目
-
说一下项目难点
-
Vue里面想要新增一个对象属性,如何实现这个属性也可以响应式
-
TCP为什么要进行四次挥手
-
说一下etag
-
用vue单组件设计一个搜索框(如下图所示,下拉框内容为向后端发起请求后拿到的结果)
-
我先是写了防抖
-
然后面试官又问如果发起一个请求之后,又发起了一个请求,但是第一个请求的结果在第二个请求之后到达,该怎么办
-
-
说一下快排的思路以及时间复杂度
-
还了解其他排序的思路吗?并说出时间复杂度
我回答了冒泡,选择,归并
-
原本面试官想问我红墨水和蓝墨水那到智力题,但是问我以前有没有见过,我说有,面试官就说算了😂
剩下的时间大概就在聊平时是怎么学习的了,以及工作室的一些事情,最后让我反问了一下。
HR面(15min)
-
三轮面试的感受
-
什么时间开始学习前端的
-
为什么选择前端
-
介绍一下项目
-
项目有遇到什么困难吗
-
什么时候可以来实习,可以实习多久,毕业后想要选择工作的城市是哪里
-
有了解公司这边的主要业务吗
-
反问
全部评论
(9) 回帖