面试
面试项目介绍
- 项目介绍
- 主要技术
- 技术难点
- 技术成果
- 业务成果
初面:
技术广度:
技术点遍历,考察对前端相关技术视野,涉猎程度,挖掘专精技术方向
技术深度:
考察在某个技术领域/方向的下探深度代码
解决问题的能力:
考察临场解决问题的能力
常见的问题:
实现布局的方式有那些? 流式布局 浮动布局 定位布局 flex 布局 grid 布局 - https://juejin.cn/post/6994685954044723207#heading-8 - https://zhuanlan.zhihu.com/p/88433372
如何防范 CSRF 攻击? 加 token 验证码 内容过滤加密 web worker/service worker 可用于哪些场景? 光线追踪 加密 数据预获取 Progressive Web App 拼写检查 - https://cloud.tencent.com/developer/article/1587126 - https://juejin.cn/post/6844903616176717832 - https://segmentfault.com/a/1190000017749922 - https://ruanyifeng.com/blog/2018/07/web-worker.html SPA 做 SEO 有哪些方式? SSR Prerender https://developers.google.com/search/docs/advanced/javascript/javascript-seo-basics
Git Rebase 和 Git Merge 之间的区别
基础:
Css 新特性、 等比缩放 aspect-ratio 滚动捕捉 scroll-snap-type 沟槽 gap 逻辑属性 新的媒体查询 prefers-reduced-motion prefers-contrast prefers-reduced-transparency prefers-color-scheme inverted-colors screen-fold-posture 比较函数 min max clamp 可见内容 内在尺寸 display 多值、contents 属性 css 规则 嵌套 @nest @apply 注册自定义属性 @property 容器查询 @container @scope 和 @layer
TS 高级特性、 交叉类型、 never 类型 keyof in 联合类型 infer Parameters InstanceType ConstructorParameters ThisParameterType OmitThisParameter
EventLoop
React:
受控/受 setStats 或者 useState 等控制,有状态
非受控、通过操作 dom 获取数据
性能优化、
React.memo
shouldComponentUpdate 生命周期事件,根据 nextState 和 nextProps 状态判断是否要重新渲染
懒加载组件
React Gragments
不使用内联函数定义,避免每次render 创建新的函数实例
避免 componentWilMount 中异步请求
数据流方案/原理
Vue:
computed/watch、
双向绑定2/3原理、
Object.defineProperty
Proxy
Composition 优点
小程序:静态转译、运行时渲染、底层架构
潮流:Vite、Sevlte、Flutter
前端 8 大方向
互动技术-多媒体 跨端技术 可视化技术
中后台 Nodejs 智能化技术 工程化
(问到不会的技术问题时可以坦诚自己平时用的不太多,但平时用什么比较多,引导面试官往你会的方向去问,扬长避短)
考察过往工作经验,复盘重点项目工作成果:考察参与项目/产品的贡献度,在项目中扮演的决赛 解决问题的能力:项目中遇到的问题,如何解决问题的(讲出过程),过程中的思考,重新复盘的话 会如何做的更好业务 sense:负责业务的参与和熟悉程度。
传统的 AARRR 模型(用户获取、提升活跃度、提高留存率、获取收入、自传播)不同。国内的电商公司对用户增长更侧重以下三个层面:用户拉新、用户转化、用户留存。
最后准备 3 个问题: 可以问业务形态方向、技术氛围之类的
展现自己积极正向的方面即可,表达有逻辑性,体现对技术的追求,有要性,抗压能力强
排期
🕵️ 算法(三到六个月)
- 熟悉常用数据结构,算法的使用场景和最佳实践
- 独立完成大部分中等难度题目
- Leetcode 每周竞赛 50% 能做出三题
- 熟悉常见的 OA 平台的 IDE,如 Hackerrank, CodeSignal
🧩 基础知识(一个月)
- 了解编程语言特性
- 了解简历上的技术栈
- 了解设计模式,数据库,网络协议等基础
- 完成 60% 以上自主练习
🌉 系统设计(一到三个月)
- 熟悉常见的系统架构模式
- 熟悉系统设计组件的使用场景
- 阅读参考资料
- 在三次模拟面试中获得正面的评价
🎨 项目介绍(一周)
- 根据示例,针对简历上面的三个项目写下 STAR 文档
- 简历上的项目阐述清楚学习到的东西,最有挑战性的地方
- 简历上的项目阐述清楚不同方案的优缺点
♟️ 非技术问题(一周)
- 根据示例,写下对于参考资料 2 中十个问题的回答
- 将每个问题贴上对应的 Amazon principles 标签(可多选)
🥇 求职阶段
- 修改简历
- 整理准备投递的岗位
- 投递简历,找内推
参考
- https://github.com/huyaocode/webKnowledge
- https://www.yuque.com/tridiamond/galaxy
- https://www.pzijun.cn/blog/1/1.1.html#instanceof-%E7%9A%84%E5%86%85%E9%83%A8%E5%AE%9E%E7%8E%B0%E5%8E%9F%E7%90%86
- https://github.com/Advanced-Frontend/Daily-Interview-Question
- https://github.com/sisterAn/JavaScript-Algorithms
- https://muyiy.cn/blog/
- https://q.shanyue.tech/interviews/fe.html#%E9%AB%98%E8%B5%9E%E6%96%87%E7%AB%A0%E6%94%B6%E8%97%8F
- https://triplebyte.com/candidates
- https://interview-science.org/