Skip to main content

前端面试准备计划,直面寒冬!

· 8 min read
Torres Li
Maintainer of https://jamesli-dev.github.io/

为了更好的直面寒冬,应对现在大环境,是时候好好准备一下了。

一、简历

找工作,那肯定不能少了简历,敲门砖嘛!一份好的简历可以让你轻松通过初筛,拿到面试的机会

总结几点

  • 简历内容简洁明了,简历模板不需要太花哨
  • 内容块要有明确(个人信息,工作经历,项目经历,专业技能,社区blog等模块)
    • 最重要的应该是表现出自己的优势在哪里,比如在项目中,做了哪些难点工作,工作职责内容等
    • 个人在项目中的参与度,是什么角色
    • 个人基本信息
    • 加分项 github(要有内容) blog 网站 有自己的东西
  • 专业技能,写那么4-5点就OK,太基础的就不需要写了,两个关键词 『精通』『熟练』要区分

二、技术准备

众所周知,国内面试都会经常问一些八股文,算法等等这类的东西,虽然很反感,但是不得不做准备,这里就突然想起一次特别的面试方式,给面试人一个需求(在github上),要求面试人5天之内完成这个需求,提交到github上,当然这种面试是在面试完基础知识点之后的第二面或者三面的内容,你觉得这类的面试方式你可以接受吗?

扯远了,言归正传,下面我只列出大纲内容

HTML,CSS

1、从浏览器导航栏输入地址到页面渲染完成的过程

2、语义化标签

3、script 标签的 deferasync

4、script标签,defer 和 async 什么区别?

5、重排(reflow)和重绘(repaint)的理解

6、flex 布局

JS 基础

1、event loop 事件循环

2、this指向有哪几种?

3、原型和原型链

4、作用域,作用域链

5、执行上下文

6、闭包

7、内存泄露

8、ES6 新特性

  • 箭头函数、模板字符串、模板字符串、解构赋值、延展操作符、对象属性简写、Let与Const
  • 对象方法、数组方法、Set 和 Map
  • Promise、async/await、generator
  • ES6 Modules

9、call, apply,bind (使用,区别,实现)

10、new 操作符(过程)

11、数据类型(怎么判断 typeof...)

TS

1、泛型

2、TS 中有哪些类型

3、TS 和 JS 相比有哪些优势

4、void 和 never 区别

5、any 和 unknow 的区别

6、类型推断

React

1、fiber -> diff算法 -> 虚拟Dom -> 事件系统

2、react 中key的作用

3、生命周期 -> hooks 出现解决了什么,以及他们之间的区别

4、常用hooks的作用,经常怎么使用

  • useState, useEffect, useRef, useLayoutEffect
  • useMemo, useCallback
  • useContext,

5、类组件 -> 函数组件 区别

6、context

7、redux 等状态管理原理,执行过程

8、性能优化(memo, useMemo, lazy, Suspense, Fragment等等)

9、自定义hooks

10、错误边界,报警系统,捕获错误等 (如果做过前端监控)

webpack

1、打包流程

2、loader, plugin 用来做什么,有什么区别

3、描述怎么实现一个loader 或者plugin

4、热更新 原理

5、怎么优化构建速度

6、文件指纹策略

7、和其他打包工具比如 vite 区别

8、Babel(原理)

工程化,模块化

1、 脚手架 creat-react-app、vue-cli等等,模板管理,减少框架搭建时间

2、 代码规范 eslint + prettier + husky 构建pre-commit 预检规范

3、 项目上线前的流程规范 git 分支管理,开发分支,develop 测试分支,master 主干

4、 项目中的模块化、页面组件化,细化页面,抽离公共组件,减少单文件代码量

5、 mock服务,mockjs 接口拦截,返回模拟数据,或Yapi,swagger

6、 自动化部署 Jenkins

7、公司级组件库?

8、微前端(single-spa?、qiankun)

性能优化

随便搜索可以得到很多方案

Node

1、事件循环,和浏览器事件循环的区别

2、登录,鉴权

3、中间件

4、session(和cookie区别及使用)

5、Stream 流

6、npm install 的执行过程

7、文件系统 fs

8、express 和koa框架的区别

9、Node的优势和劣势?

10、node的原生模块(使用过的)

11、大文件上传如何做分片上传、断点继传?

12、微服务

网络制式

1、常见状态码

2、浏览器存储、缓存

3、跨域(为什么、常用解决办法)

4、websoket

5、http,https

6、安全(CSRF、XSS、DDos)

7、前端登录流程

手写题

这里都有Click

1、深度克隆

2、防抖,节流

3、call,bind,apply

4、promise, promise.all

5、函数柯里化

.......

算法

直接上链接 -> 都在这里

其他

1、前端路由实现方式

2、Taro VS uni-app 优缺点

3、谈谈微信小程序

4、代码发布之后,怎么确保用户访问到的是最新的

5、前端常用设计模式(观察者模式,发布订阅模式等)

6、谈谈微前端

7、结合你的项目经历,谈谈有哪些难点,解决方式

三、心态

生活总归不是一帆风顺,尽力而为,随心而动,保持本心

不管是找工作,还是在面试过程中,心态是很重要的,尤其是在当下市场环境不理想的情况下,更要求我们放平心态,烦躁不安是正常,但是得及时调节自我,不能太着急,着急可能就会犯一些意想不到的错误,亲身经历过的应该懂。

四、总结

时间关系,上文中只列出了一些框架,这些东西随便搜索,都是可以得到答案,我后面也会抽时间整理一份详细的内容出来。 不多废话,希望所有的人都能找到理想合适自己的工作!