1.一面:问到一些css,js,网络的基础知识,写了几个代码题
- js中基本数据类型有哪些
- 盒模型:ie模型和标准模型,手写出来
- position的6个属性,分别介绍,如果父元素的position是..,那么.....
- css尺寸单位。em是相对于什么,百分比相对于什么.然后一道例题具体分析:也是父元素 如果尺寸是..,那么子元素?
- 事件冒泡与事件捕获
- 缓存:说了强缓存和协商缓存区别和过程
- http报文组成部分
- 写出你知道的http状态码,写了大概15个,然后追问了302,303这两个暂时重定向的区别
- cookie在http请求的哪一部分
- this作用域,4种,然后面试官手写一个关于作用域的例题要求分析
- 代码题:分别写出斐波那契数列递归和非递归写法
- 代码题:两个有序的数组重新排序成一个有序的数组,写出两种,一种用concat连接,再用sort排序;另一种要求不使用数组的方法
- 代码题:原生js实现发布订阅模式
- 还有很多小问题记得不太清楚了,这一面答得还好,只有最后实现发布订阅模式没有写出面试官满意的结果
- 最后问了面试官当时是如何学习一个新框架的,还有进公司是否有培训等问题
2.二面:项目和手写代码
- 在项目中负责什么,项目架构,一般怎么新增模块
- 前后端分离
- 详细说了模块的一个功能,聊到了进度条,要求用原生js写出,没有写过,就问如果要设计一个关于进度条的api要设计那些属性和方法
- 了解es6吗
- 代码题:一个数组[-122,34 ,343,544,-22],把他们按照个位的大小排序
- 代码题:两个很大的数例如413431531513531613和548452348136423这样的相加,怎么实现
- 代码题:函数柯里化
- 还有几个代码题忘了,这一面答的一般,最后面试官问