JavaScript 中 var 和 let 的区别

javascriptfront end technologyobject oriented programming

众所周知,为了在 javascript 中声明变量,我们有两个选择,要么用 var 声明,要么用 let 声明。现在的问题是何时使用 var,何时使用 let,即两者之间的主要区别是什么。

在下文中,我们将了解 javascript 中 var 和 let 的主要区别。

let 和 var 之间的主要区别在于,用 let 定义的变量的作用域仅限于声明它的块,而用 var 声明的变量具有全局作用域。所以我们可以说 var 是一个关键字,它全局定义变量,而不管块作用域如何。

let 的作用域不仅限于定义它的块,而且即使在任何块之外声明变量,用 let 定义的变量也不会添加到全局窗口对象中。但是,如果变量是全局定义的,我们可以从 window 对象使用 var 访问它。

由于作用域有限,let 变量通常用于变量使用受限的情况,例如在 for 循环、while 循环或 if 条件范围内等,而 var 变量则用于变量值需要较少更改且需要全局访问的情况。

此外,var 和 let 之间的一个区别是,var 变量可以重新声明为其他值,而如果变量是用 let 定义的,则不能重新声明。

表示 var 和 let 之间差异的示例

let a = 'hello'; // 全局作用域
var b = 'world'; // 全局作用域
console.log(window.a); // 未定义
console.log(window.b); // 'world'
var a = 'hello';
var a = 'world'; // 没问题,'hello' 被替换了。
let b = 'hello';
let b = 'world'; // SyntaxError:标识符 'b' 已被声明

相关文章