# let/const
let 用于声明变量, 具有块级作用域, 不会产生变量提升
暂时性死区(temporal dead zone, 简称 TDZ)
一个代码块内如果有 let/const 语句声明的变量, 那么从代码块开始至 let/const 语句这部分都不能调用此变量, 这个区域被称为暂时性死区
// 隐藏的暂时性死区
function bar(x = y, y = 2) {
return [x, y]
}
bar(); // ReferenceError
let x = x;
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
const 用于声明一个常量, 不能重新赋值
const PI = 3.1415926535897942464338324950288
PI = 1; // TypeError: Assignment to constant variable.
1
2
2
声明变量的六种方法
- var
- function
- let
- const
- import
- class