使用let关键字声明变量:
使用let关键字声明的变量具有块级作用域
if (true) { let b = 20; console.log(b) if (true) { let c = 30; } console.log(c); } console.log(b)
if (true) { let num = 100; var abc = 200; } console.log(abc); console.log(num)
防止循环变量变成全局变量
for (let i = 0; i < 2; i++) {} console.log(i);
使用let关键字声明的变量没有变量提升
console.log(a); let a = 100;
使用let关键字声明的变量具有暂时性死区特性
var num = 10 if (true) { console.log(num); let num = 20; }
使用Const声明变量:
使用const关键字声明的常量具有块级作用域
if (true) { const a = 10; if (true) { const a = 20; console.log(a); } console.log(a); } console.log(a);
使用const关键字声明的常量必须赋初始值const PI = 3.14; 常量声明后值不可更改