'Var' 和 'Let' 之间有什么区别?Var

2025-06-08

“Var” 和 “Let” 之间有什么区别?

变量

首先,我想谈谈JavaScript 作用域
作用域决定了变量的可访问性。你不能在作用域之外访问变量。

在 ES6 之前的 Javascript 中,有两种类型的作用域:

  1. 全局范围
  2. 局部作用域(函数作用域)

全局范围

在块或函数之外声明的任何变量都在全局范围内。您可以从任何地方访问这些变量。


局部作用域(函数作用域)

顾名思义,在函数内部声明的变量具有局部作用域。它们只能在函数内部访问。


ES6 引入了LetConst变量,它们的作用域可以限定在块内。所以现在又多了一种作用域类型。

块作用域

在 JavaScript 中,花括号会创建一个块。因此,如果你在块内使用LetConst声明了一个变量,则无法在该块外部访问它。


变量

使用Var声明的变量具有函数作用域。您无法从函数外部访问此变量。但是,如果您在代码块内部使用Var声明变量,则可以从外部访问它。

区块.png

与Var不同Let具有块作用域。您只能在块内部访问这些变量。因此,如果您尝试从外部访问,则会引发引用错误

let-block.png


您可以重新分配用Var声明的变量

var-reassign.png
但是你不能用Let

let-reassign.png


Var 声明 ( var a) 每次出现时都会移至文件顶部。这被称为。有了它,你可以做类似这样的事情。(点击此处hoisting了解更多信息hoisting

var-hoisting.png

使用let则不能这样做。它会给出一个错误:

let-hoisting.png


参考

鏂囩珷鏉ユ簮锛�https://dev.to/frk_ozbk/what-is-the-difference- Between-var-and-let-436a
PREV
React Fragments 内部是如何工作的?
NEXT
网页上的可变字体 什么是可变字体? 普通字体 vs. 可变字体