返回
ES6语法中的let和const关键字
前端
2024-02-16 13:08:28
引言
在ES6中,变量声明有了很大的变化,新增了两个let和const,它们与传统的var关键字有很大的不同。这篇文章将重点介绍let和const关键字的用法,以及它们与var关键字的区别。
let关键字
1. 定义变量
let关键字用于声明变量,与var关键字不同,let声明的变量只能在声明所在的块级作用域内使用。
let x = 10;
if (x > 5) {
let y = 20;
console.log(y); // 输出 20
}
console.log(y); // 报错:y未定义
2. 暂时性死区
let声明的变量在进入声明所在的块级作用域之前是无法访问的,这被称为暂时性死区。
console.log(x); // 报错:x未定义
let x = 10;
3. 块级作用域
let声明的变量只在声明所在的块级作用域内有效,出了这个作用域就不能再访问该变量了。
function f() {
let x = 10;
}
f();
console.log(x); // 报错:x未定义
4. 不能重复声明
let声明的变量不能在同一个块级作用域内重复声明。
let x = 10;
let x = 20; // 报错:x已声明
const关键字
1. 定义常量
const关键字用于声明常量,与let关键字不同,const声明的常量一旦声明就不能再改变。
const PI = 3.14;
PI = 3.15; // 报错:PI是常量,不能改变
2. 块级作用域
const声明的常量只在声明所在的块级作用域内有效,出了这个作用域就不能再访问该常量了。
function f() {
const PI = 3.14;
}
f();
console.log(PI); // 报错:PI未定义
3. 不能重复声明
const声明的常量不能在同一个块级作用域内重复声明。
const PI = 3.14;
const PI = 3.15; // 报错:PI已声明
let和const与var的区别
特性 | var | let | const |
---|---|---|---|
作用域 | 全局或函数 | 块级 | 块级 |
暂时性死区 | 没有 | 有 | 有 |
重复声明 | 允许 | 不允许 | 不允许 |
可变性 | 可变 | 可变 | 不可变 |
何时使用let和const
1. 变量声明
- 使用let声明变量,当变量的值可能发生改变时。
- 使用const声明常量,当变量的值不会发生改变时。
2. 块级作用域
- 使用let和const声明变量,可以实现块级作用域。
3. 暂时性死区
- 使用let声明变量,可以避免暂时性死区。