ES6是什么?
1、ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在2015年6月正式发布了。
2、它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言,成为企业级的语言。
3、ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的一种实现(另外的 ECMAScript 方言还有 Jscript 和 ActionScript)。日常场合,这两个词是可以互换的。
let命令(用来声明变量)
ES6新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。
let与var的区别:
1.let声明的变量不能重复使用
2.let声明的变量不能变量提升
3.块状作用域 eg:点击li弹出第n个
4.使用let声明的变量不属于顶层对象
·let命令存在块级作用域
if(true){
var m = 100;
let n = 30;
}
console.log(m);//100
console.log(n);//Uncaught ReferenceError: n is not defined
讲解:如图所示,分别使用let和var来声明变量,在代码块外调用两个变量,结果let声明的变量报错显示undefined,var声明的变量返回正确的数值,表明let声明的变量只在他所在的代码块有效
·let声明的变量不能变量提升
//var的情况
console.log(foo);
var foo = 2; //undefined
//let的情况
console.log(bar);
let bar = 2; //ReferenceError: Cannot access 'bar'
讲解:上述代码中,变量foo用var命令声明,会发生变量提升,即脚本开始运行时,变量foo已经存在了,但是没有值,所以会输出undefined。 变量bar用let命令声明,不会发生变量提升。这表示在声明它之前,变量bar是不存在的,这时如果用到它,就会抛出一个错误。 因此,使用let声明变量,极大的消除了代码的潜在bug的隐患。
const命令
const:用来声明常量
1.const 声明的常量用大写(不是规则,是一种默契)
2.const声明的常量不能修改
3.块状作用域
4.使用const声明的常量也不属于顶层对象