主要了解一下你的学习态度,学习路线与方式,以及一些基础问题
从js到vue使用感觉有什么变化,两者有什么区别(答了vue专注于数据,不用频繁操作dom,提供viemodel层,简化代码)
遇到问题一般怎么解决(文档、论坛)
jQuery的Ajax底层是什么
说说事件委托,只省去了我们设定多个监听器吗?(答了对性能优化也有帮助)
什么是事件冒泡,如何阻止
原生:event.stopPropagation
Vue:stop修饰符
数组去重一般怎么实现(我答转成Set)
如何获取查询字符串的key和value(通过正则设置捕获组来捕获)
如何寻找出现最多的字符(我答了通过指针来遍历查找)
vue组件通信方式(分三类,答了七种,少说了provide/inject)
防抖和节流是什么,举例应用场景
数组有哪些方法
图片懒加载是怎么做的,怎么获取的容器高度(变量名我忘了) 容器所在高度:offsetTop
容器自身高度:offsetHeight 滚动高度:pageYOffset || scrollTop
说说发布订阅模式
canvas/svg有了解吗(了解过canvas做过一些小demo)
数据可视化,例如echarts用过吗(简单用过)
D3了解过吗(听过,没了解过)
整体比较简单,以了解你学习情况为主,看你对前端是不是有兴趣,能不能适应工作之类的,面试官迟了几分钟,对面杂音也比较大,体验感一般,人比较和善,就是后面比较急就结束了,也没有反问环节,可能去赶着另一个面试
Vue-router两种配置
有没有在组件中用过this.$router.params这种写法(这块当时不太熟,答得不好) params传参在刷新后会失效,要用动态路由的方式传:**
{
path: '/home/:username',
name: '/home',
component: Home
}
//这样就要用www.exemple.com/home/lisi这样来跳,lisi就是对应的参数,这样跳过去刷新就不会失效
如何撤销axios请求(这个也不会) 通过里面的一个axios.CancelToken.source()方法获取取消的方法,原理是利用XHR对象中的abort方法来已经发出的请求进行取消,调用XHR.abort()之后,重置xhr.status状态值为0(响应成功状态值为4),避免走成功响应逻辑
fetch和axios的差别(答了fetch更轻量一点,一般简单请求就用它,在大项目中还是封装axios来用) 下来查到就是一个是原生一个是库的区别
xhr详细了解过吗(答了四个状态,没答出来onreadystatechange
事件和readyState
属性)
看过什么js的基础书籍(我说有红宝书,问我看没看过《你不知道的JS》,我没看过)
平时如何调试(说了控制台打印和浏览器文件中打断点)
浏览器打断点中如何跳过第三方库(没答上来,面试官告诉我有Blackbox script选项用来忽略对应文件)
遇到过的困难点(回答了从JQ到Vue代码重构到解耦的过程,模块化思想的转变,对高内聚低耦合的追求,他说我回答有点偏了,算是回答了他另一个问题)
调试印象最深的问题(回答了之前用第三方库会出现一些问题,例如better-scroll,最后发现是一些异步数据的问题)
手机端开发多吗(不太多,只做过一个H5项目,主要还是PC)
怎么做真机联调(没做过)
问我之前提到的一个聊天平台,问我用什么协议做的(我用的腾讯IM,底层没有自己去做)
java这些你也有做,是全栈咯?(我说java学得不深,只会基本的框架crud)
项目怎么部署的(阿里云的云服务器,用nginx部署的)
来我司的需求是什么(纵向发展,想往大前端方面靠,考虑接触服务端)
coding题:实现一个indexOf方法,返回第一个匹配的子串(用遍历+计数器的方式做出来了)
你觉得你是一个什么性格的人?目前为止遇到最大的压力是什么?(回答了高中英语从倒一到年级第一的过程,后来反问评价面试官说这也是一个亮点,可以加分)
反问公司业务,说最近移动端的优先级被调高了
后面又约了hr面,hr面后一个多月了,还没有消息,前两天还给我打过电话说招聘还没有结束,让我耐心等待
#面经##同花顺面经##同花顺#