高级前端工程师成长经验分享

666 阅读4分钟

一个前端工程师应该具备哪些基础技术能力?

整体技术图谱.png

算法技术图谱.png 各个节点对应链接可移步语雀点击查看 www.yuque.com/g/wangruona… 邀请你查看文档「前端工程师技术图谱」

写在前面

有关HTML CSS JavaScript的所有知识点,都不建议参考【w3school 在线教程】或【菜鸟教程】这两个网站(可以用来练习代码开发),因为很多知识点描述不准确不全面,建议习惯性打开【MDN】 developer.mozilla.org/zh-CN/
举例1:CSS属性position,图一是w3school,图二是MDN,面试官往往会考察sticky

image.png

image.png

举例2:JavaScript函数原型上的方法call,图一是w3school,图二是MDN,面试官往往会考察call的this传值为非对象的情况

image.png

image.png

面试流程(技术面):

高级前端工程师:一般两面,一面主管,二面交叉或主管leader,面试内容类似

  1. 项目经验(40%-50%):谈1-2个项目中遇到的最难的问题,怎么解决的?
  2. 基础知识考核(20-30%)
  3. 手写代码(20%-30%)

初级前端工程师:三面-四面不等;一面同团队比你厉害的,二面主管,三面交叉或主管leader

  1. 一面:基础知识考核(50-60%)手写代码(40%-50%)
  2. 二面:深度知识考核(50-60%)手写代码(40%-50%) 有的会重点关注项目经验
  3. 三面或四面:项目经验,综合能力考察

手写代码题:

高级前端工程师:

  1. 实现函数柯里化
  2. 实现Array.group、Array.reduce、Array.filter
  3. 封装函数实现:限制fetch请求数量最多同时进行limit个,超过limit个要等前面有请求结束再请求 类似的变换有:fetch换为promise
  4. 有效的括号 Leetcode原题
  5. 实现JSON.stringify
  6. 翻转链表 Leetcode原题
  7. 实现自定义React hook useInterval
  8. 实现 bind apply call
  9. 岛屿数量 Leetcode原题
  10. 爬楼梯 Leetcode原题
  11. 无重复字符的最长子串 Leetcode原题
  12. 实现一组promise按顺序输出结果

初级前端工程师:

  1. 数组扁平化
  2. 将一个数组随机打乱次序并输出乱序后的数组
  3. 实现深拷贝 注意解决循环引用的问题
  4. 原生JS封装百度输入框
  5. 实现new操作符
  6. 实现防抖、节流
  7. 实现Promise.all
  8. 实现promise的timeout:即如果一个promise没有在规定时间内resolve,就reject特定error
  9. 二叉树的最小深度 Leetcode原题
  10. 验证二叉搜索树 Leetcode原题

八股文:

高级前端工程师:

  1. React底层原理:Fiber架构、lane模型、class与hook区别
  2. Redux底层原理:middleware实现原理
  3. React和Rdux常用Hook的用法
  4. https中的tls加密过程
  5. 首屏加载优化方案
  6. 虚拟表格原理
  7. 富文本编辑器实现
  8. 系统错误监控 sentry
  9. 应用白屏如何排查解决
  10. 内存泄露如何定位
  11. TypeScript中的static、type、key of
  12. 自适应布局有多少种实现方案
  13. 页面跳转,同源和不同源情况下分别实现传参
  14. 平时学习的渠道,最近在看什么书?有什么心得?

初级前端工程师:

  1. 浏览器缓存策略
  2. web应用常见攻击方式及如何防御:xss csrf
  3. 抓包为什么能抓https
  4. 跨域是什么,如何解决,什么时候会有预检请求
  5. 大文件切片上传,断点续传
  6. treeShaking原理
  7. CSS:flex,position,nth-of-type,em和rem
  8. 301和302区别
  9. canvas和svg区别
  10. 事件循环EventLoop
  11. ES6新特性:太多了不举例了,希望大家全部掌握
  12. 平时学习的渠道,最近在看什么书?有什么心得?

写在最后

每一个搞技术的仔,在学习的时候都应该渴求系统全面的知识体系,知其一且知其二,知其然且知其所以然,做到牵一发能拎全身,拒绝碎片化学习,拒绝一知半解外强中干,脚踏实地、稳扎稳打,才能在面试的时候厚积薄发,泰然自若。
有关前端的基础知识体系,希望大家在面试前能做到每一个模块的知识都拿出来翻炒过,在面试的时候都还是热乎的,每个面试官都有自己的个性,有些喜欢考察较为冷门的知识,最大限度全面的复习能保证最小概率的错失机会