目录
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();
<