JavaScript中变量提升的原理及影响如何浅析?

更新于
2026-09-25 00:01:40
0阅读来源:SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

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

JavaScript中变量提升的原理及影响如何浅析?

目录+前言:+函数提升+var变量提升+let const提升+Class提升+前言:+JavaScript中奇特的一点是你可以在变量和函数声明之前使用它们。也就是说,变量声明和函数声明被提升了,提升了代码的顶部一样。

目录
  • 前言:
  • 函数提升
  • var变量提升
  • let & const提升
  • Class提升

前言:

JavaScript中奇怪的一点是你可以在变量和函数声明之前使用它们。就好像是变量声明和函数声明被提升了代码的顶部一样。

sayHi() // Hi there! function sayHi() { console.log('Hi there!') } name = 'John Doe' console.log(name) // John Doe var name

然而JavaScript并不会移动你的代码,所以JavaScript中“变量提升”并不是真正意义上的“提升”。

JavaScript是单线程语言,所以执行肯定是按顺序执行。但是并不是逐行的分析和执行,而是一段一段地分析执行,会先进行编译阶段然后才是执行阶段。

在编译阶段阶段,代码真正执行前的几毫秒,会检测到所有的变量和函数声明,所有这些函数和变量声明都被添加到名为Lexical Environment的JavaScript数据结构内的内存中。所以这些变量和函数能在它们真正被声明之前使用。

阅读全文

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

JavaScript中变量提升的原理及影响如何浅析?

目录+前言:+函数提升+var变量提升+let const提升+Class提升+前言:+JavaScript中奇特的一点是你可以在变量和函数声明之前使用它们。也就是说,变量声明和函数声明被提升了,提升了代码的顶部一样。

目录
  • 前言:
  • 函数提升
  • var变量提升
  • let & const提升
  • Class提升

前言:

JavaScript中奇怪的一点是你可以在变量和函数声明之前使用它们。就好像是变量声明和函数声明被提升了代码的顶部一样。

sayHi() // Hi there! function sayHi() { console.log('Hi there!') } name = 'John Doe' console.log(name) // John Doe var name

然而JavaScript并不会移动你的代码,所以JavaScript中“变量提升”并不是真正意义上的“提升”。

JavaScript是单线程语言,所以执行肯定是按顺序执行。但是并不是逐行的分析和执行,而是一段一段地分析执行,会先进行编译阶段然后才是执行阶段。

在编译阶段阶段,代码真正执行前的几毫秒,会检测到所有的变量和函数声明,所有这些函数和变量声明都被添加到名为Lexical Environment的JavaScript数据结构内的内存中。所以这些变量和函数能在它们真正被声明之前使用。

阅读全文