大家好,我是前端西瓜哥。最近整理了一些前端面试题,看看你会几道?
部分题目有题解,且为本人的原创文章
JavaScript
js 有很多给一段代码,问运行结果的,因为篇幅原因,这类问题就不贴了。
-
Event Loop 是什么?题解
-
事件委托是什么?有什么优点?
-
实现一个 getRandom(min, max),返回指定范围内的整数 题解
-
手写 Promise(或 Promise.all)
-
实现一个深拷贝
-
JSON 序列化如何处理环的问题?
-
节流函数是什么?手写节流函数(或防抖函数)
-
实现版本号比较算法
-
如何将类数组对象转换为数组?题解
-
判断数组的方法有哪些?
-
import 和 require 的区别
-
JS 如何实现继承?
-
说说对原型链的理解
-
ES6 中数组的新方法
-
用原型链的方式实现一个 JS 继承 题解
-
什么时候会发生内存溢出?如何定位内存泄漏?题解
-
如何实现 JS 懒加载?
-
闭包的理解,闭包有什么缺点?
-
实现一个 bind
-
0.1 + 0.2 为什么不等于 0.3?
-
谈谈变量提升
-
数组去重 题解
-
['1', '2', '3'].map(parseInt) 的输出结果是什么?题解
-
实现 sum 方法(柯里化)
-
实现 lazyMan 方法 题解
-
手写 EventEmitter 题解
-
说一下 Koa 的洋葱模型
-
TypeScript 的优缺点 题解
-
Object.defineProperty
-
Object.defineProperty 与 Proxy 的区别
浏览器
-
浏览器的渲染过程,重排及重绘,以及如何优化?
-
描述下浏览器从输入网址到页面展现的整个过程
-
如何减少白屏的时间
-
说说前端性能指标
-
跨标签页通信的方式有哪些?
HTML / CSS
HTML / CSS 考得会少一点,但也是要掌握。
-
BFC 是什么?题解
-
CSS 如何让元素垂直居中?(或垂直居中)
-
CSS 元素的优先级
-
img 和 background-image 的区别 题解
-
CSS 的双飞翼和圣杯布局
-
CSS 样式隔离手段
-
说说 preload、prefetch、preconnect 以及 dns-prefetch 题解
-
移动端 1px 问题
-
伪类和伪元素有哪些?
React / Vue
-
说说 React(或 Vue ) 的 DOM Diff 算法
-
React 和 Vue 的区别
-
列表渲染为什么要使用 key?题解
-
Vue(或 React) 的组件如何进行数据通信?
-
Vue 双向绑定机制实现
-
Vue 的 keep-alive 的用法,以及是如何实现的?
-
虚拟 DOM 的优势
-
Vue 中 v-show 和 v-if 的区别
-
Vue 的生命周期有哪些?它们都做了什么事情?
-
Vue 响应式原理
-
Vue 虚拟 Dom 转换为真实 DOM 的过程
-
vue-loader 做了什么事情?
-
React合成事件是什么?和原生事件的区别
-
React 的 setState 是同步还是异步?
-
React有哪些性能优化的点
-
history 和 hash 两种路由方式的最大区别是什么?
-
React 类组件和函数组件有什么区别?
-
Redux 和 Mobx 的区别
计算机网络
-
说说 HTTP 缓存策略(强缓存和协商缓存)题解
-
TCP 和 UDP 的区别?
-
HTTP 请求头有哪些?它们的作用是?
-
HTTP 的状态码有哪些?
-
HTTPS 和 HTTP 的区别
-
HTTP2 的优点
-
XSS 和 CSRF 是什么?如何防御?
-
session 和 cookies 的区别
-
Cookies 的属性有哪些?题解
-
什么时候会发生跨域?如何处理跨域问题?题解
-
说说 CORS 题解
-
TCP 三次握手?以及为什么是 3 次?
-
TCP 四次挥手
-
HTTP 头字段 Origin、Host 和 Referer 有什么区别?题解
工程化
-
Webpack 中 loader 和 plugin 的区别
-
Webpack 热更新原理
-
Webpack 从零到一怎么搭建项目?
-
tree-shaking 的原理是什么,为什么只对 ESModule 有用?
-
服务端渲染有什么优劣势?
-
谈下Webpack loader 机制
-
是否有写过webpack插件
-
uglify 原理的是什么?
项目
-
你觉得你遇到的最有挑战性的项目是什么?
-
如何做前端性能优化?做过哪些项目上的优化?
-
说一个犯过的最大的技术错误,或是引发的技术故障
-
移动端有什么适配方案?
-
你觉得 h5 开发和 PC 有什么区别?
-
h5 开发如何控制台打印?
-
有看源码吗?学到什么?有哪些用到工作中
-
怎么做长列表优化?
哲学
-
说说你的优缺点,各三个
-
如何体现自己有较强的学习能力?
-
最近在学什么东西?
-
有什么职业目标或规划?
-
你为什么从事前端?
-
你有什么想问我的吗?
算法
算法啥都有,大多数是 LeetCode 的原题,偶尔会给原题做一点改动,我称之为 “穿马甲”。
考得比较多的是链表和二叉树,下面给几道面试中比较常见的算法题。
我是前端西瓜哥,主要写前端面试题相关的文章,欢迎关注我,一起学前端。