前端面试相关技术栈

87 阅读3分钟

1. HTML/CSS 基础

  • HTML

    • HTML5 标签(如 <article><section><nav> 等语义化标签)。
    • 常用 HTML 标签及属性(如 <div><span><a><img><form><input>)。
    • 表单元素及验证(如 input 类型、selecttextarea 等)。
    • HTML 表单的事件(如 onSubmitonChangeonClick)。
    • HTML5 新特性(如 <video><audio><canvas>localStorage 等)。
  • CSS

    • CSS 选择器(如类选择器、ID 选择器、属性选择器、伪类选择器 :hoverfocus 等)。
    • 盒模型(box model)及其影响:paddingmarginbordercontent
    • 布局方式:浮动(float)、定位(positioning)、Flexbox、CSS Grid。
    • 响应式设计(媒体查询 @media)。
    • CSS 动画与过渡(transition 和 animation)。
    • BEM 命名法、CSS 预处理器(Sass、Less)。
    • 浏览器兼容性及解决方案。

2. JavaScript 基础

  • 基本语法

    • 变量声明(letconstvar)。
    • 数据类型(基本类型:numberstringbooleannullundefined;引用类型:objectarrayfunction)。
    • 运算符、条件判断(if/elseswitch)。
    • 循环(forwhileforEachmap 等)。
    • 函数定义(函数声明、函数表达式、箭头函数)。
    • 数组、对象的常用操作(添加、删除、遍历)。
  • ES6+ 特性

    • 解构赋值(对象和数组的解构)。
    • 模板字符串(template literals)。
    • 箭头函数(Arrow Functions)。
    • Promise 和异步编程(async/awaitthencatch)。
    • 模块化(import/export)。
    • 类(Class)、继承(extends)、构造函数(constructor)。
    • Set、Map 数据结构。
    • 扩展运算符(...)和剩余参数。
  • 深度理解

    • 作用域与闭包(闭包如何工作的,什么是词法作用域)。
    • this 的指向及绑定。
    • 事件委托。
    • 事件循环(Event Loop)、宏任务和微任务(Microtask)。
    • 性能优化(节流、去抖)。

3. 前端开发工具

  • 版本控制:Git 基本命令(git clonegit pullgit pushgit mergegit rebase 等),GitFlow 工作流。
  • 构建工具:Webpack、Babel、Vite、Parcel 等构建工具的基本使用,模块化、代码分割。
  • 包管理工具:npm、yarn 的基本操作。
  • 调试工具:Chrome DevTools 使用技巧、调试 JavaScript 代码、查看网络请求。
  • 代码格式化与检查:ESLint、Prettier。

4. 前端框架

  • React(最常见的前端框架之一):

    • React 基本概念:组件、JSX、状态(State)和属性(Props)。
    • React 生命周期方法(如 componentDidMountcomponentDidUpdate)。
    • Hooks(useStateuseEffectuseContextuseReducer 等)。
    • 路由(React Router)。
    • React 性能优化:React.memo、PureComponent、useCallback、useMemo。
    • 虚拟 DOM 与真实 DOM 的关系。
  • Vue(另一个流行的框架):

    • Vue 基本概念:组件、模板、指令(v-ifv-forv-bind)。
    • Vue 生命周期。
    • Vue Router、Vuex(状态管理)。
    • Vue 3 中的 Composition API。
  • Angular(较少见,但大公司中常用):

    • 组件、服务、依赖注入(DI)。
    • RxJS 和 Observables。
    • Angular 路由和状态管理。

5. 常见的前端开发问题

  • 跨域问题与解决方案:CORS(跨源资源共享)、JSONP、代理等。
  • 浏览器存储localStoragesessionStoragecookies、IndexedDB。
  • Web 安全
    • XSS(跨站脚本攻击)、CSRF(跨站请求伪造)及防护。
    • HTTPS 与 SSL/TLS。
  • 性能优化:懒加载、代码拆分、图片优化、前端缓存、合并与压缩请求。

6. Web API

  • DOM 操作:使用 JavaScript 操作 DOM 元素(querySelectoraddEventListenersetAttribute 等)。
  • Fetch API 与 XMLHttpRequest:用于发起 HTTP 请求,理解 GET、POST、PUT、DELETE 等请求方法。
  • WebSocket 与实时通信:理解 WebSocket 的工作原理。
  • Service Worker 和 PWA:渐进式 Web 应用,离线缓存。

7. 前端测试

  • 单元测试:使用 Jest、Mocha、Chai 等测试工具编写和执行单元测试。
  • 端到端测试:使用 Cypress、Puppeteer、Selenium 等工具进行端到端自动化测试。
  • Mock 数据与依赖注入:如何模拟 HTTP 请求和响应。

8. 其他知识

  • 设计模式:了解常见的设计模式,如单例模式、观察者模式、工厂模式等。
  • 浏览器渲染原理:浏览器如何解析 HTML、CSS,并最终渲染页面。
  • 进程与线程、Web Worker:前端多线程和异步编程的基础。

面试准备建议

  • 刷题:练习 LeetCode、Codewars 等网站上的前端相关题目,提升编程能力和面试表现。
  • 项目经验:准备好简短的项目经验介绍,特别是自己做过的 React、Vue 等项目,能够展示自己的技术栈。
  • 常见面试题:研究常见的前端面试题,如:事件循环、闭包、原型链、作用域、异步编程等。
  • 模拟面试:与朋友进行模拟面试,锻炼表达和解决问题的能力。