Let 与 Var 关键字的区别

17 Mar 2025 | 阅读 2 分钟

var 关键字

var 语句用于在 JavaScript 中声明变量。使用 var 关键字声明的变量在整个程序中定义。

示例

输出

let and var keyword

let 关键字

let 语句用于在 TypeScript 中声明局部变量。它类似于 var 关键字,但在与 var 关键字相比,其作用域有一些限制。let 关键字可以提高代码的可读性并降低编程错误的可能性。使用 let 关键字声明的变量仅限于块级作用域。

注意:var 和 let 的主要区别不在于语法,而在于语义。

示例

输出

上面的代码片段抛出一个错误,因为变量“hello”没有被全局定义。

let and var keyword

Var vs. Let 关键字

序号varlet
1.var 关键字是与 JavaScript 一起引入的。let 关键字是在 JavaScript 的 ES6 (ES 2015) 版本中添加的。
2.它具有全局作用域。它仅限于块级作用域。
3.它可以在全局范围内声明,并且可以在全局范围内访问。它可以在全局范围内声明,但不能在全局范围内访问。
4.使用 var 关键字声明的变量可以在同一作用域中重新声明和更新。
示例
function varGreeter(){
  var a = 10;        
  var a = 20; //a is replaced
  console.log(a);
}
varGreeter();
使用 let 关键字声明的变量可以更新,但不能重新声明。
示例
function varGreeter(){
  let a = 10;        
 let a = 20; //SyntaxError: 
 //Identifier 'a' has already been declared
  console.log(a);
}
varGreeter();
5.它会被提升(hoisted)。
示例
{
  console.log(c); // undefined. 
  //Due to hoisting
  var c = 2;
}
它不会被提升(hoisted)。
示例
{
  console.log(b); // ReferenceError: 
  //b is not defined
  let b = 3;
}