丰巢科技

深圳市丰巢网络技术有限公司

一面

1、说一个你印象最深刻的项目?遇到了什么问题?怎么解决的?有什么成果?

2、有个长列表上万行,怎么做优化?

3、图片资源怎么做优化?

4、懒加载的话,如果异步请求返回很慢 1-3 秒,怎么优化? - 后端处理,缓存

5、做过哪些 webpack 打包体积优化?具体怎么做怎么配置的?Webpack 性能优化

6、你觉得 webpack 里面最难配置是哪些?

7、浏览器加载网页的主要步骤包括哪些?输入url后

8、浏览器对页面进行渲染,是怎么渲染的?DOM 树和 CSSOM 树是怎么构建的?

10、CDN 加速原理是什么?它和外链引入js这种有什么区别?

11、防抖和节流是什么?怎么实现?有哪些应用场景?

12、vue-router 有几种模式?分别说下他们的实现原理?

13、说下 vue 响应式原理

14、说下 vue 都有哪些生命周期钩子函数?都在什么阶段触发的?

15、vue 如果一个父组件嵌套了子组件,它们的加载顺序是什么?触发生命周期的顺序又是什么?

16、说下 Diff 算法的执行过程

DOM操作是很耗性能的,因此需要尽量减少DOM操作。找出本次DOM必须更新的节点来更新,其他的不更新,这个“找出”的过程,就需要diff算法。diff算法主要执行过程:

patch(container, vnode) ,首次渲染,将 container 转为 vnode,并对比新旧 VNode 是否相同节点然后更新DOM patch(vnode, newVnode) ,数据改变二次渲染,对比新旧 VNode 是否相同节点然后更新DOM createElm(vnode, insertedVnodeQueue),先执行用户的 init 钩子函数,然后把 vnode 转换成真实 DOM(此时没有渲染到页面),最后返回新创建的 DOM updateChildren(elm, oldCh, ch, insertedVnodeQueue), 如果 VNode 有子节点,并且与旧VNode子节点不相同则执行 updateChildren(),比较子节点的差异并更新到DOM

17、用过哪些ES6的新特性

18、ES6 的 Map 有什么特性?可以设置重复的key吗?Map 有顺序吗

Map最主要的特性就是可以设置任意数据类型的key。key不能重复,后续会覆盖之前的,有顺序。

19、可以改变原数组的方法有哪些

push, pop, unshift, shift, splice, sort, reverse

20、怎么收集一个二维数组里的重复元素?

先拍平数组,再遍历数组,判断当前元素的前后索引值,如果前后索引值不一样就是重复的

21、怎么判断一个元素是否为数组?

(1)Array.isArray() (2)arr instanceof Array (3)Object.prototype.toString.call(obj) === '[object Array]'

22、最近在学什么新技术?

23、你近期的职业规划?有具体去做计划吗?你觉得怎样才算是一个高级开发?

24、你有什么问题要问我的?

上次更新:
Contributors: jiangjingmin, kyxiao