精选常见面试题,帮助您准备下一次面试
HTML
- 图片标签中的 alt 有什么作用?
- 清缓存的目的是什么,如何实现?
- HTML 中可以包含多个
<header>
或者<footer>
元素吗? - 简单描述 HTML5 语义元素中
<header>
、<article>
、<section>
、<footer>
的正确用法 - 简述
<script>
标签中的 defer 和 async 属性 - 什么是 DOM?
- HTML 规范和浏览器实现存在什么区别?
- XHTML 和 HTML 有什么不同?
rel="noopener"
应在什么场景下使用,为什么?- 什么是 HTML5 存储?解释一下
localStorage
和sessionStorage
- 解释 MIME type 及其作用
CSS
- 介绍一下 CSS 的 BEM
- CSS 预处理器有什么优势?
- 使用 flexbox,创建一个 3 列布局,其中每列占据容器的 col-{n} / 12 比率
- 简述一下
@media
的媒体类型 - 描述 CSS 盒子模型布局并简要描述其每一个部分
- focus 有什么效果?应该怎么正确处理他们?
em
和rem
有什么区别?- CSS sprites 的优点及如何使用?
+
和~
选择器有什么区别?- CSS 优先级是如何计算的?
JavaScript
- ['1', '7', '11'].map(parseInt) 的输出结果是?
- 等于操作符
==
和===
有什么区别 - 后置递增
i++
和前置递增++i
操作有什么区别? Promise
有哪些状态?- 根据食谱和已有食材计算可烹饪的最大次数
- 实现一个功能和
Function.prototype.bind
相同的函数 - 请举例说明什么是回调?
- 如何克隆一个 JavaScript 对象?
- JavaScript 中如何对比两个对象?
- CORS 是什么?
- 介绍事件委托及其优点,并说明如何使用?
- JavaScript 的表达式和语句有什么区别?
- JavaScript 中的真值和假值是什么?
- 生成一个包含 n 项的斐波那契数列
0.1 + 0.2 === 0.3
的计算结果是什么?- 数组方法
map()
和forEach()
有什么区别? - 变量提升
- 提升在 JavaScript 中是如何工作的?
- 立即执行匿名函数的原因是什么?
- 词法作用域和动态作用域的区别?
- 使用星号替换字符串且显示后四位
null
和undefined
有什么区别?- 参数和 arguments 有什么区别
- 列举几种创建对象的方法,并说明每种方法的使用场景
- JavaScript 通过值还是引用传递?
- 什么是 Promises?
- 原型继承和经典继承有什么区别?
- 原始值和引用值的比较
- ASI (automatic semicolon insertion) - 自动插入分号
- JavaScript 是否需要分号?
- 在 JavaScript 中同步和异步代码有什么区别?
- JavaScript 中的短路计算是什么?
- typeof
- 什么是 JavaScript 数据类型?
var
、let
、const
和没有关键字的声明有什么区别?- 什么是大 O 符号?
- 什么是闭包?请给出一个有用的示例
- 什么是事件驱动编程?
- 什么是函数式编程?
- 命令式编程和声明式编程有什么区别?
- Memoization 是什么?
- 对比 Mutable 和 Immutable 及 Mutating 和 Non-Mutating
- JavaScript 中唯一自己不等于自己的值是谁?
- 复合函数
- 什么是纯函数?
- 解释递归及其使用场景
- 静态方法和实例方法的区别
- 解释
this
关键字并介绍他是如何工作的? - React, Vue, Angular, Hyperapp 等 JavaScript UI 库或框架的目的是什么?
use strict
的作用- 虚拟 DOM 是什么,库或者框架中为什么要使用他?
- 如何在 JavaScript 中实现单例?
- JavaScript 内存应在何时及如何使用?
React
- 什么是内联条件表达式?
- React 和 HTML 的事件处理有什么不同?
- React 中的元素和组件有什么不同?
- 状态提升在 React 中的作用
- React 中如何在 JSX 树中写注释
- React 中什么是有状态的组件?
- 什么是无状态组件
setState
使用回调函数作为参数的目的是什么?- 为什么 React 要使用 className 来代替 HTML 中的 class?
- key 是什么?列表中使用时有什么优点?
- React 生命周期的方法有哪些?
- React 组件生命周期有哪些不同的阶段?
- 如何将参数传递给事件处理或回调函数?
- allback refs 和 findDOMNode() 之间哪一个更好?
- 什么是
children
属性? - React 中的 context 是什么?
- 什么是 React 中的错误边界?
- fragments 是什么?
- 什么是高阶组件?
- 在 React 组件类中如何保证
this
为正确的上下文? - React 中的 portals 是什么?
- React 中如何使用 prop 检查?
- 介绍 React 中的 Refs 及其使用场景?