返回

JavaScript 三大变量声明的用法和写法

前端

引子

ECMAScript 变量是松散类型的,变量可以用于保存任何类型的数据。在 JavaScript 中,有三种声明变量的方法:

  • var 声明
  • let 声明
  • const 声明

var 声明

var 声明是最早引入的变量声明方式,也是最常用的。使用 var 声明的变量具有以下特点:

  • 全局作用域: 在函数外声明的 var 变量具有全局作用域,可以在脚本的任何地方访问。
  • 函数作用域: 在函数内声明的 var 变量具有函数作用域,只能在声明该变量的函数内访问。
  • 重复声明: 允许在相同作用域内重复声明 var 变量,后一个声明会覆盖前一个声明。
  • 提升: var 变量会被提升到其作用域的顶部。

let 声明

let 声明是 ES6 中引入的变量声明方式,具有以下特点:

  • 块级作用域: let 声明的变量具有块级作用域,只能在声明该变量的块内访问。
  • 单次声明: 不允许在相同作用域内重复声明 let 变量,否则会报错。
  • 不提升: let 变量不会被提升,因此在使用之前必须先声明。

const 声明

const 声明也是 ES6 中引入的变量声明方式,具有以下特点:

  • 块级作用域: const 声明的变量具有块级作用域,只能在声明该变量的块内访问。
  • 常量: const 声明的变量是常量,一旦赋值后不能再修改。
  • 单次声明: 不允许在相同作用域内重复声明 const 变量,否则会报错。
  • 不提升: const 变量不会被提升,因此在使用之前必须先声明。

比较

下表比较了 varletconst 三种变量声明方式:

特性 var let const
作用域 全局/函数 块级 块级
重复声明 允许 不允许 不允许
修改 允许 允许(但不可重新赋值) 不允许
提升

使用场景

根据不同的使用场景,可以选择最合适的变量声明方式:

  • 全局变量: 使用 var 声明全局变量,便于在脚本的任何地方访问。
  • 局部变量: 在函数内声明局部变量,使用 letconst 声明,以限制其作用域和避免与全局变量冲突。
  • 常量: 使用 const 声明常量,以防止其被意外修改。

示例

以下示例演示了三种变量声明方式的用法:

// var 声明
var x = 1;

// let 声明
let y = 2;

// const 声明
const PI = 3.14;

结论

varletconst 是 JavaScript 中声明变量的三种方式,它们具有不同的作用域、声明规则和修改权限。根据不同的使用场景,选择最合适的变量声明方式可以提高代码的清晰度、可维护性和安全性。