JavaScript 面试题

基础、型别
  • ▪︎JavaScript 有哪些资料型别?该怎么辨别一个变数的资料型别?
  • ▪︎在 JavaScript 当中,==、=== 与 Object.is() 的区别
  • ▪︎null、undefined 与 undeclared 的区别?
  • ▪︎Map 与 object 的差别?为什么有 object 还需要 Map?
  • ▪︎请解释 Set、Map、WeakSet 和 WeakMap 的区别?
  • ▪︎在 JavaScript 中 0.1 + 0.2 会是多少?为什么?如何避免相关问题?
  • ▪︎严格模式 (use strict) 的用途?有什么好处?
变数、作用域、闭包
  • ▪︎在 JavaScript 中用 var, let, 以及 const 有什么差别?
  • ▪︎Javascript 的作用域 (Scope) 与作用域链 (Scope Chain) 是什么?
  • ▪︎什么是闭包 (closure)?
  • ▪︎什么是提升 (Hoisting)?
数组
  • ▪︎JavaScript 中数组 (Array) 的遍历方法 (for loop, for...in, for…of, forEach, map, filter, every, some)
  • ▪︎JavaScript 中的 sort 传入 (a,b) => b - a 会是升序还是降序?为什么呢?
函式
  • ▪︎什么是箭头函式(Arrow Function)?跟一般的函式有什么差别?
  • ▪︎JavaScript 立即调用函数 IIFE (Immediately Invoked Function Expression) 是什么?
  • ▪︎高阶函式 (Higher order function) 是什么?
物件和原型
  • ▪︎最常见的 JavaScript 原型 (prototype) 面试题 :原型 (prototype)、原型链 (prototype chain) 、原型继承 (prototypal inheritance)
  • ▪︎请解释 JavaScript 中 this 的值?
  • ▪︎ES6 中的 class 是什么?和函式构造函式差别是什么?
事件循环、Promise、Async/Await
  • ▪︎Promise 是什么?有什么用途?
  • ▪︎请说明浏览器中的事件循环 (Event Loop)
  • ▪︎最常见的事件循环 (Event Loop) 面试题目汇整