ES6简介
ES6, 全称 ECMAScript 6.0 ,是 JavaScript 的下一个版本标准,2015.06 发版。
ES6 主要是为了解决 ES5 的先天不足,比如 JavaScript 里并没有类的概念,但是目前浏览器的 JavaScript 是 ES5 版本,大多数高版本的浏览器也支持 ES6,不过只实现了 ES6 的部分特性和功能。
ES6 let 与 const
ES6 新增加了两个重要的 JavaScript 关键字: let 和 const。
let 声明的变量只在 let 命令所在的代码块内有效。
const 声明一个只读的常量,一旦声明,常量的值就不能改变。
let 命令
- 代码块内有效
{
let a=0;
var b=1;
}
console.log(a,b);
// a is not difined
- 不能重复声明
var a=1;
var a=2;
let b=3;
let b=4;
console.log(a,b);
// b Identifier 'b' has already been declared
- 不存在变量提升
console.log(a);//a is not defined
var a = 1;
console.log(a); //Cannot access 'a' before initialization
let a = "apple";
//变量 b 用 var 声明存在变量提升,所以当脚本开始运行的时候,b 已经存在了,但是还没有赋值,所以会输出 undefined。
//变量 a 用 let 声明不存在变量提升,在声明变量 a 之前,a 不存在,所以会报错。
var 声明变量特点
(1)允许重复声明
(2)存在变量提升
(3)存在就近原则
(4)全局变量会作为全局对象window的属性
(5)只受函数作用域的限制
const命令 用来声明常量
- 常量初始化完成,不允许二次赋值。
const a=11;
a=22;
console.log(a);//Assignment to constant variable.
- 常量不允许只声明不赋值。
const a;
console.log(a);//Missing initializer in const declaration
var b;
console.log(b);//undefined