ES 6新增加了两个重要的关键字:let和const, 他们的作用就是用来取代var。
let声明的变量只在let命令所在的代码块内有效。
const声明一个只读的常量, 一旦声明, 常量的值就不能改变。
1、let的使用
let与var的使用对比
只在代码块内有效
for(var a = 0 ; a<10 ; a++){} console.log(a) ; //输出结果-->10 for r(let b = 0 ; b <10 ; b++){} console.log(b) ; //输出结果-->Uncaught ReferenceError:b is not defined
不能重复声明
console.log(a); var a="apple"; //输出结果-->undefined console.log(b); let b="banana"; //输出结果-->Uncaught ReferenceError:Can not access 'b' before initialization var命令会发生"变量提升"现象, 即变量可以在声明之前使用, 值为undefined
2、const的使用
const声明一个只读变量, 声明之后不允许改变。意味着,一旦声明必须初始化,否则会报错。
const PI="3.1415926"; console.log(PI) //输出结果-->3.1415926 const GENDER; //输出结果-->UncaughtSyntaxError:Missing initializer in const declaration
3、暂时性死区
ES6明确规定, 代码块内如果存在let或者const, 代码块会对这些命令声明的变量从块的开始就形成一个封闭作用域。代码块内,在声明变量PI之前使用它会报错。
var PI="a"; if(true) { console.log(PI); //输出结果àa } if(true) { console.log(PI); //输出结果à Uncaught ReferenceError:Can not access 'PI' before initialization }
文章评论(0)