JavaScript中如何理解暂时性死区与垃圾回收原理?

更新于
2026-10-01 15:50:46
36阅读来源:SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1909个文字,预计阅读时间需要8分钟。

JavaScript中如何理解暂时性死区与垃圾回收原理?

目录 + 临时性死区(TDZ) + 临时性死区是什么 + JS垃圾回收机制 + 内存泄漏 + 垃圾回收机制 + 临时性死区(TDZ) + 临时性死区是什么 + 我们来看一个例子 + var tmp=123; if (true) { tmp='abc'; console.log(tmp); }

目录
  • 暂时性死区(TDZ)
    • 暂时性死区是什么
  • js垃圾回收机制
    • 内存泄漏
    • 垃圾回收机制

暂时性死区(TDZ)

暂时性死区是什么

我们来看一个例子

var tmp = 123; if (true) { tmp = 'abc'; console.log(tmp); let tmp; }

上面两条语句都会报错,因为初始化前无法访问

但是我们知道var定义的变量,是存在变量提升的,我们来看一下其原理:

任何代码运行前都会经历预编译阶段,但它占用的时间往往极其短暂,所以我们一般感知不到,它主要是在内存中开辟一些空间以此来存放变量与函数。

阅读全文

本文共计1909个文字,预计阅读时间需要8分钟。

JavaScript中如何理解暂时性死区与垃圾回收原理?

目录 + 临时性死区(TDZ) + 临时性死区是什么 + JS垃圾回收机制 + 内存泄漏 + 垃圾回收机制 + 临时性死区(TDZ) + 临时性死区是什么 + 我们来看一个例子 + var tmp=123; if (true) { tmp='abc'; console.log(tmp); }

目录
  • 暂时性死区(TDZ)
    • 暂时性死区是什么
  • js垃圾回收机制
    • 内存泄漏
    • 垃圾回收机制

暂时性死区(TDZ)

暂时性死区是什么

我们来看一个例子

var tmp = 123; if (true) { tmp = 'abc'; console.log(tmp); let tmp; }

上面两条语句都会报错,因为初始化前无法访问

但是我们知道var定义的变量,是存在变量提升的,我们来看一下其原理:

任何代码运行前都会经历预编译阶段,但它占用的时间往往极其短暂,所以我们一般感知不到,它主要是在内存中开辟一些空间以此来存放变量与函数。

阅读全文