目錄
let/const 與 var 的區別?TDZ 是什么?
箭頭函數與普通函數的區別?箭頭函數能否作為構造函數?
模板字符串的嵌套表達式和標簽模板用法?
解構賦值的應用場景及對象 / 數組解構差異?
函數參數默認值的生效條件及暫時性死區問題?
展開運算符(...)在數組 / 對象中的使用場景?
Symbol 類型的特性及實際應用場景?
for...of 循環與 for...in 循環的區別?
Array.from () 和 Array.of () 的作用?
Object.assign () 的深拷貝問題?
Promise 三種狀態及鏈式調用原理?
Promise.all () 和 Promise.race () 的區別?
async/await 的實現原理及錯誤處理?
Generator 函數與 yield 關鍵字的執行機制?
宏任務與微任務的執行順序差異?
setTimeout、Promise、async/await 的執行順序?
如何中斷 Promise 鏈?
async 函數中多個 await 的并行優化策略?
ES6 Class 與 ES5 構造函數的本質區別?
super 關鍵字在構造函數和靜態方法中的用法?
靜態屬性和實例屬性的定義方式?
如何實現類的私有屬性和方法?
extends 繼承的實現原理?
如何通過 Class 實現 Mixin 模式?
Set/Map 與 Array/Object 的核心差異?
WeakSet/WeakMap 的垃圾回收機制?
Map 的鍵名類型限制及與 Object 的性能對比?
使用 Set 實現數組去重?
如何實現 LRU 緩存策略(Map 應用)?
ES Module 與 CommonJS 的加載機制差異?
動態導入(import ())的應用場景?
循環依賴的處理方式?
Tree Shaking 的實現條件?
Proxy 攔截器的常用場景?
Reflect 對象的設計目的?
let/const 與 var 的區別?TDZ 是什么?
在 ES6 中引入了let
和const
,它們與var
存在多方面區別。
作用域方面:var
具有函數作用域,意味著在函數內部使用var
聲明的變量,在整個函數體中都可以訪問。例如:
function testVar() {if (true) {var x = 10;}console.log(x); // 輸出 10
}
testVar();
<