let实际上为JavaScript新增了块级作用域。
{ let a = 10; var b = 1;}a // ReferenceError: a is not defined.b // 1
let不允许在相同作用域内,重复声明同一个变量。
// 报错function () { let a = 10; var a = 1;}// 报错function () { let a = 10; let a = 1;}
const声明一个只读的常量。一旦声明,常量的值就不能改变。
const PI = 3.1415;PI // 3.1415PI = 3;// TypeError: Assignment to constant variable.
const的作用域与let命令相同:只在声明所在的块级作用域内有效。
if (true) { const MAX = 5;}MAX // Uncaught ReferenceError: MAX is not defined
const声明的常量,也与let一样不可重复声明。
var message = "Hello!";let age = 25;// 以下两行都会报错const message = "Goodbye!";const age = 30;