返回

JavaScript 中 const、var 和 let 的区别与用法详解

前端

一、const、var 和 let 的声明方式

  • const: const 用于声明常量。常量一旦声明就不能被重新赋值,否则会报错。
  • var: var 关键字用于声明变量。var 声明的变量是全局变量,可以在任何地方访问。
  • let: let 关键字用于声明局部变量。let 声明的变量只在声明所在的块级作用域内有效。

二、const、var 和 let 的作用域

  • const: const 声明的变量的作用域是全局的,但不能被重新赋值。
  • var: var 声明的变量的作用域是全局的,可以在任何地方访问。
  • let: let 声明的变量的作用域是局部变量,只在声明所在的块级作用域内有效。

三、const、var 和 let 的暂时性死区

  • const: const 声明的变量没有暂时性死区。
  • var: var 声明的变量有暂时性死区,即在变量声明之前,该变量是不可访问的。
  • let: let 声明的变量有暂时性死区,即在变量声明之前,该变量是不可访问的。

四、const、var 和 let 的使用场景

  • const: const 声明的变量用于声明常量,例如:const PI = 3.1415926;
  • var: var 声明的变量用于声明全局变量,例如:var name = 'John Doe';
  • let: let 声明的变量用于声明局部变量,例如:let age = 30;

五、const、var 和 let 的总结

特性 const var let
声明方式 const 关键字 var 关键字 let 关键字
作用域 全局 全局 局部
暂时性死区
使用场景 常量 全局变量 局部变量

六、示例

// const 声明的常量
const PI = 3.1415926;

// var 声明的全局变量
var name = 'John Doe';

// let 声明的局部变量
let age = 30;

// 尝试重新赋值 const 声明的变量
PI = 3.14; // 报错:TypeError: Assignment to constant variable.

// 尝试在变量声明之前访问 var 声明的变量
console.log(name); // undefined

// 尝试在变量声明之前访问 let 声明的变量
console.log(age); // ReferenceError: Cannot access 'age' before initialization.

七、结论

const、var 和 let 是 JavaScript 中定义变量的三个关键字。它们有着不同的声明方式、作用域和暂时性死区。const 声明的变量是常量,一旦声明就不能被重新赋值。var 声明的变量是全局变量,可以在任何地方访问。let 声明的变量是局部变量,只在声明所在的块级作用域内有效。在实际开发中,应根据不同的场景选择合适的变量声明方式。