Hasty Briefsbeta

双语

The Temporal Dead Zone, or why the TypeScript codebase is full of var statements

8 months ago
  • #JavaScript
  • #Performance
  • #TypeScript
  • 时间死区(TDZ)是JavaScript中的一个概念,使用`let`和`const`声明的变量在初始化前不可访问。
  • 用`var`声明的变量不存在TDZ,这可能导致在初始化前访问时出现变量泄漏和未定义值等问题。
  • TypeScript代码库出于性能考虑大量使用`var`语句,因为避免TDZ检查能带来显著性能提升(某些基准测试中可达8%)。
  • 现代JavaScript中通常不推荐使用`var`,因其缺乏块级作用域和不可变性约束,更推荐使用`let`和`const`。
  • TDZ是一项有益特性,能防止访问未初始化变量,但会带来运行时性能开销。