ECMAScript 6(简称ES6)是于2015年6月正式发布的JavaScript语言的标准,正式名为ECMAScript 2015(ES2015)
之前我们的声明:
var flag = 1224;
console.log(flag);
打印:
var声明的变量存在预解析,当我们把打印放在赋值上面,它的值着是默认的undefined
当我们把 var 换成 let
let:
console.log(flag);
/*
var flag = 1224;
*/
let flag = 129;
则会报错:
这是因为let声明的变量不存在预解析
假如另外一种情况
var flag = 12;
var flag = 45;
console.log(flag);
结果也肯定是45
把var换成 let
let flag = 12;
let flag = 45;
console.log(flag);
也会报错:
这个是因为let声明的变量在同一个作用域内不能重复es6
ES6引入的块级作用域:在块内部声明的变量,在外部是无法访问的(在块级作用域也只能先声明在使用)
如:
if (true){
let flag = 12;
}
console.log(flag);
打印:
const:
const 对于 let 也同样的适用,const 也还有自己独特的规则
const 是用来声明常量的
例子:
const a = 1;
console.log(a);
打印1
const a = 1;
a = 2;
console.log(a);
则会报错:
这是因为 const 声明的常量不允许重新赋值,在声明的时候就必须初始化