整理了一些前端面试题目,看看你会几道?

646 阅读5分钟

大家好,我是前端西瓜哥。最近整理了一些前端面试题,看看你会几道?

部分题目有题解,且为本人的原创文章

JavaScript

js 有很多给一段代码,问运行结果的,因为篇幅原因,这类问题就不贴了。

  1. Event Loop 是什么?题解

  2. 事件委托是什么?有什么优点?

  3. 实现一个 getRandom(min, max),返回指定范围内的整数 题解

  4. 手写 Promise(或 Promise.all)

  5. 实现一个深拷贝

  6. JSON 序列化如何处理环的问题?

  7. 节流函数是什么?手写节流函数(或防抖函数)

  8. 实现版本号比较算法

  9. 如何将类数组对象转换为数组?题解

  10. 判断数组的方法有哪些?

  11. import 和 require 的区别

  12. JS 如何实现继承?

  13. 说说对原型链的理解

  14. ES6 中数组的新方法

  15. 用原型链的方式实现一个 JS 继承  题解

  16. 什么时候会发生内存溢出?如何定位内存泄漏?题解

  17. 如何实现 JS 懒加载?

  18. 闭包的理解,闭包有什么缺点?

  19. 实现一个 bind

  20. 0.1 + 0.2 为什么不等于 0.3?

  21. 谈谈变量提升

  22. 数组去重  题解

  23. ['1', '2', '3'].map(parseInt) 的输出结果是什么?题解

  24. 实现 sum 方法(柯里化)

  25. 实现 lazyMan 方法 题解

  26. 手写 EventEmitter 题解

  27. 说一下 Koa 的洋葱模型

  28. TypeScript 的优缺点 题解

  29. Object.defineProperty

  30. Object.defineProperty 与 Proxy 的区别

浏览器

  1. 浏览器的渲染过程,重排及重绘,以及如何优化?

  2. 描述下浏览器从输入网址到页面展现的整个过程

  3. 如何减少白屏的时间

  4. 说说前端性能指标

  5. 跨标签页通信的方式有哪些?

HTML / CSS

HTML / CSS 考得会少一点,但也是要掌握。

  1. BFC 是什么?题解

  2. CSS 如何让元素垂直居中?(或垂直居中)

  3. CSS 元素的优先级

  4. img 和 background-image 的区别 题解

  5. CSS 的双飞翼和圣杯布局

  6. CSS 样式隔离手段

  7. 说说 preload、prefetch、preconnect 以及 dns-prefetch 题解

  8. 移动端 1px 问题

  9. 伪类和伪元素有哪些?

React / Vue

  1. 说说 React(或 Vue ) 的 DOM Diff 算法

  2. React 和 Vue 的区别

  3. 列表渲染为什么要使用 key?题解

  4. Vue(或 React) 的组件如何进行数据通信?

  5. Vue 双向绑定机制实现

  6. Vue 的 keep-alive 的用法,以及是如何实现的?

  7. 虚拟 DOM 的优势

  8. Vue 中 v-show 和 v-if 的区别

  9. Vue 的生命周期有哪些?它们都做了什么事情?

  10. Vue 响应式原理

  11. Vue 虚拟 Dom 转换为真实 DOM 的过程

  12. vue-loader 做了什么事情?

  13. React合成事件是什么?和原生事件的区别

  14. React 的 setState 是同步还是异步?

  15. React有哪些性能优化的点

  16. history 和 hash 两种路由方式的最大区别是什么?

  17. React 类组件和函数组件有什么区别?

  18. Redux 和 Mobx 的区别

计算机网络

  1. 说说 HTTP 缓存策略(强缓存和协商缓存)题解

  2. TCP 和 UDP 的区别?

  3. HTTP 请求头有哪些?它们的作用是?

  4. HTTP 的状态码有哪些?

  5. HTTPS 和 HTTP 的区别

  6. HTTP2 的优点

  7. XSS 和 CSRF 是什么?如何防御?

  8. session 和 cookies 的区别

  9. Cookies 的属性有哪些?题解

  10. 什么时候会发生跨域?如何处理跨域问题?题解

  11. 说说 CORS 题解

  12. TCP 三次握手?以及为什么是 3 次?

  13. TCP 四次挥手

  14. HTTP 头字段 Origin、Host 和 Referer 有什么区别?题解

工程化

  1. Webpack 中 loader 和 plugin 的区别

  2. Webpack 热更新原理

  3. Webpack 从零到一怎么搭建项目?

  4. tree-shaking 的原理是什么,为什么只对 ESModule 有用?

  5. 服务端渲染有什么优劣势?

  6. 谈下Webpack loader 机制

  7. 是否有写过webpack插件

  8. uglify 原理的是什么?

项目

  1. 你觉得你遇到的最有挑战性的项目是什么?

  2. 如何做前端性能优化?做过哪些项目上的优化?

  3. 说一个犯过的最大的技术错误,或是引发的技术故障

  4. 移动端有什么适配方案?

  5. 你觉得 h5 开发和 PC 有什么区别?

  6. h5 开发如何控制台打印?

  7. 有看源码吗?学到什么?有哪些用到工作中

  8. 怎么做长列表优化?

哲学

  1. 说说你的优缺点,各三个

  2. 如何体现自己有较强的学习能力?

  3. 最近在学什么东西?

  4. 有什么职业目标或规划?

  5. 你为什么从事前端?

  6. 你有什么想问我的吗?

算法

算法啥都有,大多数是 LeetCode 的原题,偶尔会给原题做一点改动,我称之为 “穿马甲”。

考得比较多的是链表和二叉树,下面给几道面试中比较常见的算法题。

  1. 反转链表

  2. 检测链表是否有环

  3. 无重复字符串的排列组合 题解

  4. 二叉树高度

  5. 不使用临时变量,交换两个数 题解

点这里查看算法合集

我是前端西瓜哥,主要写前端面试题相关的文章,欢迎关注我,一起学前端。