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) 面試題目彙整