AfterShip前端一面面经
AfterShip前端一面(leader面)
这一面说实话刚面完我就慌了,开头几个问题都答不上来。。虽然后面恢复过来了,找回了一点场子,但整体表现我是很不满意的。。希望能过吧
说一下哈希表的哈希算法怎么实现
进程间的通讯有哪些方式
数据库的三大范式
这前三个我是真的直接就被问懵了,脑子一片空白。。。我是真的没想到面试前端的岗位会被问到这些,属于是没认真学好学校的课程被 gank 了
redux 的实现原理
这个明明我之前写过一篇文章总结的啊啊啊!这怎么就忘了
当时脑子一片空白的我只回答了:一个全局的对象,供所有组件访问状态,只能使用 reducer 进行状态的更改
typescript中的泛型
这里脑子还是空白状态。。明明很简单的概念,就是想不起来怎么讲,沉默了好一会,这时候我都觉得自己要凉了
简历上写了对CSS3D和动画有了解,说一下
这里逐渐缓过来了,前面问到我知识盲区带来的的冲击实在太大了
这里讲了写过一个可拖拽旋转的、观察者处于内部的天空盒子,又讲了浏览器运行原理层面的一个动画性能问题,就是太紧张了,应该讲得不好
在实习期间做的项目
提到了优化其他实习生代码的事情
你是如何优化其他实习生的代码的
讲了导出导入 Excel 的问题,用到了一个库,因为不同页面有不同的导出需求,别的实习生是将同一段代码复制过去,然后修修改改来符合需求,这样的代码太过冗余,我就给封装到了 util 中,通过传入的第二个参数 config 配置对象来控制行为
同时因为这个库要根据导出类型、后缀等配置项进行对象的创建,于是我使用了享元模式来减少重复对象的创建,享元模式的原理稍微讲了一下
聊一下你自己项目中遇到过的困难
这是个老生常谈的话题了,讲了自己在 Vuepress 主题开发过程中遇到的 bug ,如何解决,以及提到自己总结了一篇文章来讲这个(百度上找不到满意的答案)
如果你遇到一个网站加载很慢或者卡顿,你会怎么排查问题
这里回答先看看网络那里,如果是文件较大,会开启 gzip 进行压缩、使用 Webpack 的插件(这里忘记名字很尴尬)删除无用的注释、缩进,开启 CDN 加速
本来还想说一个浏览器控制台的性能监测工具的,但没来得及就下一个了讲一下 CDN 的一个实现
讲的有点乱,出现了漏讲然后跳回漏的地方重讲的情况
缓存有了解吗
讲了内存缓存、硬盘缓存,和强缓存、协商缓存(Cache-control)
看你简历上写了网络安全,讲一讲
讲了 SQL 注入、XSS 攻击以及我自己在某网站上的实操(已反馈 bug )、CSRF 如何攻击,我本以为面试官会问我如何防范 CSRF,好歹这也是我在选修课网络安全上写过前端网络安全的论文的,能讲几句,但全说完了才想起来还有个防范 ,结果居然没问,没问我也没好意思提
接下来会如何进行学习
有什么现在正在进行或者打算写的项目吗
讲了毕设,React Native 开发的即时通讯软件,实现文字表情聊天、图片传输、视频通话等功能,目前只实现了 API 层的封装和整体架构的搭建,同时也有完成了部分小模块的开发。还提到之前有在 Vue 开发的网页端应用上使用 WebRTC 和 WebSocket 实现过视频通话了,还没有移植过来
本以为会问我 WebRTC 或者 WebSocket ,又或者是问我 API 层怎么封装的,结果都没问,早知道我就主动讲点了
反问环节
许愿面试通过!出必还愿!!)
)
)