3月6日上午 10:27 25分钟
一面
自我介绍
主要就讲了自己的学校,学过的课程,给学校做过的项目啊,自己做过的项目。
闭包
是指一个函数能记住并访问它所在的作用域(相关内容具体可以看《你不知道的JavaScript》),闭包产生的原因是函数作用域。
闭包有哪些优缺点
我一开口讲内存泄漏问题,面试官就打断并提问,如果同时有大量请求,每次请求都会调用一个settimeout
,此时造成大量闭包内存如何解决,我当时没回答上来……
解释一下尾递归
尾递归指的是函数的最后一次调用是完全调用自身的函数。V8引擎会对尾递归调用作相应的优化。
V8引擎对尾递归调用有什么样的优化
不需要保存调用栈信息,只需要保存调用记录。
遍历数组有哪些方法
forEach
,map
,reduce
,filter
其实还有some
,every
,reduceRight
我当时没想起来
有哪些 HTTP Methods
GET
,POST
,PUT
,DELETE
,HEAD
,PATCH
,OPTION
面试官说还有TRACE
,我开始慌了😂
CSS垂直居中的方法
这个问题可以看《CSS揭秘》 绝对定位方法、基于视口单位方法、flexbox方法。
浏览器事件循环
浏览器会把异步操作放入事件队列中,主线程调用栈全部弹空之后会去检查事件队列并把事件队列中需要执行的事件放入主线程调用,如此循环。
Vuejs的特点
组件化, 双向数据绑定, defineProperties数据劫持,Observer and Watcher, 渐进式, Virtual Dom.
XSS CSRF
我就讲了他们的原理,这两个知识点网上应该有很多介绍。
提问环节
阿里这样的大公司会偏向于使用开源的框架还是自己造的轮子?
结果
感觉自己回答的还比较轻松,除了上面提到的几个没回答上来的问题。结果还是挂了,学长告知是阿里一个P7级别的主管按照社招标准来面试我的,运气也是有点差。希望再接再厉,查漏补缺,吸取经验教训,为以后的面试做准备吧。