ES6 新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。
- let
let声明变量会限制作用域 只能在当前代码块作用域内部有效
let 声明的变量不能被提前声明 不能被重名
{
var a = 1;
let b = 2;
}
a;//1
b;//1.let和const.html:56 Uncaught ReferenceError: b is not defined at
上面代码在代码块之中,分别用let和var声明了两个变量。然后在代码块之外调用这两个变量,结果let声明的变量报错,var声明的变量返回了正确的值。这表明,let声明的变量只在它所在的代码块有效。
2. const
const声明一个只读的常量。一旦声明,常量的值就不能改变。
const声明的变量不得改变值,这意味着,const一旦声明变量,就必须立即初始化,不能留到以后赋值。
const的作用域与let命令相同:只在声明所在的块级作用域内有效。
{
//const 声明的是常量 无法被改变
const b= 20;
b=10;//1.let和const.html:61 Uncaught TypeError: Assignment to constant variable.at
console.log(b);
}