瓴岳信息社招前端岗面试经历
一面
1、讲项目
2、怎么配webpack?
3、vue-lazyloader的原理
(1)vue-lazyload是通过指令的方式实现的,定义的指令是v-lazy指令;
(2)指令被bind时会创建一个listener,并将其添加到listener queue里面, 并且搜索target dom节点,为其注册dom事件(如scroll事件)
(3)上面的dom事件回调中,会遍历listener queue里的listener,判断此listener绑定的dom是否处于页面中perload的位置,如果处于则加载异步加载当前图片的资源;
(4)同时listener会在当前图片加载的过程的loading,loaded,error三种状态触发当前dom渲染的函数,分别渲染三种状态下dom的内容;
4、前端持久化的方式、区别
5、手写vue双向绑定;
6、讲es6的一些特性,并且现场出了几个代码片段,说结果
(1)let和const命令:let命令,用来声明变量。类似于var,但是所声明的变量,只在let命令所在的代码块内有效。const命令的用法和let相似,最大不同点就是:const声明一个只读的常量。一旦声明,常量的值就不能改变。(提示:这个不可改变的是指针,所以对于const声明的对象和数组还是可以改变的。如果真的想将对象冻结,应该使用Object.freeze方法。)
(2)变量的解构赋值:ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构。
(3)ES6允许为函数的参数设置默认值,即直接写在参数定义的后面。
7、手写一道算法题
8、http状态码
二面
1、讲项目
2、vue-router的原理
3、项目中怎么用的webpack,怎么优化
4、讲一讲express的实现原理
(1)express的所有服务端逻辑处理都是通过中间件来实现的,中间件是一个函数,而app.use()方法就是去装载这些函数,并放入一个数组中。
(2)当前端一个请求传到服务器的时候,首先会经过request,然后是一系列的服务端处理,也就是中间件处理,存放于数组中的中间件采用后进先出的栈模式处理请求,最先入栈的中间件处理完请求之后,通过next将执行权交给第二个入栈的中间件,依次类推,直到数组末尾或者中间某个中间件没有调用next()函数,最后再将处理完的结果response回前端。
5、手写一道算法题
全部评论
(1) 回帖