ECMAScript 6.0 (以下简称ES6, ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是 European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言)一种脚本语 言的标准,已经在2015年6月正式发布了,并且从ECMAScript6开始,开始采用年号来做版本。即ECMAScript 2015,就是ECMAScript6它的目标,是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语 言。每年一个新版本。
一、let&const
我们以后会经常使用let来声明一个变量,还有一个const常量(声明之后不允许改变,一旦声明必须初始化, 否则报错)
1、通过var定义的变量,作用域是整个封闭函数,是全域的 。通过let定义的变量,作用域是在块级或是子块中。
for (let i = 0; i < 10; i++) { // ... } console.log(i); // ReferenceError: i is not defined //计数器i只在for循环体内有效,在循环体外引用就会报错。2、变量提升现象:浏览器在运行代码之前会进行预解析,首先解析函数声明,定义变量,解析完之后再对函数、变量进行运行、赋值等。
// var 的情况 console.log(foo); // 输出undefined var foo = 2; //相当于 var foo; //声明且初始化为undefined console.log(foo); foo=2; // let 的情况 console.log(bar); // 报错ReferenceError let bar = 2; //相当于在第一行先声明bar但没有初始化,直到赋值时才初始化
3、var可以声明多次,let只可以声明一次
var a=1 var a=3 let b=2 // 报错 let b=4 // 报错 console.log(a) console.log(b)
4、数组解构
// 数组的解构 let arr=[1,2,3]; let a=arr[0]; let b=arr[1]; let c=arr[2]; console.info(a,b,c) // ES6: 数组的解构表达式 let[aa,bb,cc]=arr; console.info(aa,bb,cc)