Skip to content

变量

在 JavaScript 中,varconstlet 是用于声明变量的关键字,它们之间有一些区别。

  1. var: 在 ES5 中引入的关键字,用于声明变量。它具有函数作用域,意味着变量的作用域限定在声明它的函数内部,或者是全局作用域(如果在函数外部声明)。此外,var 声明的变量存在变量提升的特性,即可以在声明之前使用变量。
  2. const: 在 ES6 中引入的关键字,用于声明常量。const 声明的变量必须进行初始化,并且不能再次赋值。它具有块级作用域,意味着变量的作用域限定在声明它的块级作用域内部(例如,if 语句、for 循环等),而不是函数作用域或全局作用域。
  3. let: 在 ES6 中引入的关键字,用于声明变量。let 声明的变量可以进行重新赋值,但不能再次声明。它也具有块级作用域。

下面是一些示例代码,展示了这些关键字的不同用法和行为:

javascript
// 使用 var 声明变量
var x = 10;
console.log(x); // 输出 10

function foo() {
  var y = 20;
  console.log(y); // 输出 20
}

console.log(y); // 报错,y 在函数外部不可访问

// 使用 const 声明常量
const PI = 3.14159;
console.log(PI); // 输出 3.14159

PI = 3.14; // 报错,常量不可重新赋值

// 使用 let 声明变量
let z = 30;
console.log(z); // 输出 30

{
  let z = 40;
  console.log(z); // 输出 40
}

console.log(z); // 输出 30,块级作用域内的 z 只在块内部有效