小红书前端1~3面面经
一面(9月19日下午4点)
1. 自我介绍;
2. vue双向绑定原理(数组和对象分别的处理方式);
3. vue组件通信的方式;
4. es6;
5. js中有哪些对象是可迭代的;
6. js的基本数据类型;
7. 浏览器缓存;
8. 如果一个静态文件发生了改变,但是强缓存时间还没有过期,怎么让文件内容也发送改变;(生成的静态文件名称使用哈希值,这样的话只要结果改变之后文件名就会不一样,这样请求的就是新的文件);
9. 实现一个js函数,满足先开始显示红色3秒、然后显示黄色1秒,最后显示绿色2秒,进行循环;
10. 手写快排;
11. 概述一下原型和原型链;
12. 性能优化;
还有一些不记得了
二面(9月19日下午5点40)
1. 主要问了项目的技术难点;
2. 手写函数:传入一个数字(包括正负数、小数),返回一个隔3位就在中间插入一个逗号,如:-123456789.3423 => -123,456,789.3423
3. 怎么学习的前端;
4. csrf、xss攻击;
有些不记得了
三面(9月19日晚上7点30)
1. 合作完成项目时候遇到的问题,以及怎么个解决方案;
2. 合作完成项目时候你是怎么划分模块的;
3. 如果现在让你实现一个日历的公共组件,你觉得作为封装这个组件,需要暴露出哪些可以配置的选项,就是类似于ui库一样的,你封装的组件能够提供给其他使用者哪些操作;
4. 问我如果在一个组件中,在一个方法中,修改了某一个data中属性的值,然后跟着又修改了一次,那么整个组件更新了几次?如果第二次更新使用了setTimeout来进行包裹,那么又应该更新几次?为什么?(主要就是说一下vue的nextTick部分源码的一个逻辑即可);
有些不记得了,一天面太多了。