【精简版】前端面试宝典目录(更新中……)
前端面试问题目录
精简版
专题版
HTML
- HTML语义化(概念 / 优点)
- src 和 href 的异同
- DOCTYPE 文档类型(概念 / 目的 / 浏览器渲染模式)
- 行内元素、块级元素、空元素 常见标签及其特点
- iframe 优缺点
- Canvas 和 SVG 的区别
CSS
- CSS选择器及其优先级
- 隐藏元素方法
- display:none 与 visibility:hidden 的区别
- CSS 盒子模型
- 水平居中 和 垂直居中
- BFC 块格式化上下文(概念 / 布局规则 / 创建条件 / 作用)
- margin 重叠问题
- 回流和重绘(概念 / 引起操作 / 性能影响 / 如何避免)
- 浮动 (定义 / 工作原理 / 引起的问题 / 清楚浮动)
JavaScript
- JavaScript 定义
- 强类型语言 和 弱类型语言 区别
- 解释性语言 和 编译型语言 区别
- 数据类型
- 原始数据类型 与 引用数据类型
- null和undefined区别
- 数据类型的检测方法(typeof / instanceof / constructor / Object.prototype.toString.call())
- 判断数组的方式
- typeof
- 为什么 0.1+0.2 ! == 0.3
- new 的执行过程
- JSON 理解
- JSON.stringify 和 JSON.parse()
- this 的指向情况
- JS脚本延迟加载的方式有哪些
- 原码、补码、反码
- DOM 和 BOM
- 常见的DOM操作
- use strict(严格模式)
- ajax、axios、fetch
- 深拷贝 和 浅拷贝
- ES6 新特性
- var、let 和 const 区别(块级作用域 / 变量提升 / 给全局添加属性 / 重复声明 / 暂时性死区 / 初始值设置 / 指针指向)
- 箭头函数(形式 / 和普通函数区别)
- 模板字符串
for...of 循环
- ES6中的类
class
- Promise
- 对象属性 / 方法简写
- Module模块化
- 解构赋值
- 扩展运算符 / 剩余运算符rest
- Set 和 Map 数据结构
- 变量提升(表现 / 造成本质原因 / 进行原因)
- 原型、原型链
- 执行上下文
- 作用域 和 作用域链
- 闭包(定义 / 使用原因 / 作用 / 优缺点)
- 内存泄漏(引发情况)
- 垃圾回收机制(概念 / 方法 / 减少回收方式)
- 节流与防抖(原理 / 使用场景)
TypeScript
- TypeScript 相对于 JavaScript 的优势
Vue
- Vue的优缺点
- Vue响应式原理
- 双向数据绑定原理
- v-model(概念 / 原理)
- v-if、v-show、v-html 的原理
- v-if 和 v-show 区别(手段 / 编译过程 / 编译条件 / 性能消耗 / 使用场景/优先级)
- 常见的事件修饰符及其作用
- SPA单页面(理解 / 优缺点)
- 组件通信
- Vue3.0
- Proxy 与 Object.defineProperty 优劣对比
- Vue首屏加载白屏问题及解决方法
Vuex
React
- React 和 Vue 的异同
- React 生命周期
Redux
- 为什么需要Redux
- 介绍、解决的问题
- Redux核心理念
- Redux三大原则
- Redux工作流程
- Redux异步请求处理
- redux-thunk中间件(优缺点)
- redux-saga中间件(优缺点)
项目
浏览器
- 浏览器缓存
- 浏览器安全
- XSS攻击,跨站脚本攻击(概念 / 本质 / 攻击者操作 / 攻击类型 / 如何防御)
- CSRF攻击,跨站请求伪造攻击(概念 / 本质 / 如何防御)
计算机网络
- HTTP协议,超文本传输协议(概念 / 优缺点)
- 常见的HTTP请求方法
- GET 和 POST 的区别
- POST 和 PUT 的区别
- HTTPS协议
- HTTP协议 和 HTTPS协议的区别
- TLS/SSL协议,安全传输层协议
- HTTP状态码
- 状态码类别
- 常见状态码:200、304、401、403、404、500
- DNS,域名系统
- UDP协议,
- TCP协议,传输控制协议(特点)
- TCP和UDP的区别、使用场景
数据结构