ES6最重要的3个改变:let、const、箭头
2017-07-18 本文已影响54人
月光在心中
ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言。这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript,但实际上后两者是ECMA-262标准的实现和扩展。
let是学习es6第一个需要理解的关键字。
let
-
let 使用let声明的变量,没有变量提升。
使用let声明的变量,有块级作用域。
for(let i=0;i<5;i++){
}
console.log(i);
这段代码会输出错误,因为let声明的i只在for循环中生效。
- let不能重复声明变量。
let c=10;
let c=20;
这段代码会报错,说c已经被declared。
- let有暂时性死区。
var e= 100;
function fun(){
e = 200;
let e;
console.log(e);
}
fun();
这段代码运行会报错,提示e没有定义。
因为使用了let后,全局变量不在影响此块内的变量。使用let声明的变量不受外部同名变量的影响。
总结:let比var要严格,要好用。
const
在js没有常量的概念时,程序员常用全大写的单词表示常量。但这仅是程序员的约定,编译器并没有对其做任何处理。
如:
var PI = 3.14;
- es6中使用const关键字来定义常量。
const PI2 = 3.14;
PI2 = 3.15;
运行会报错: Assignment to constant variable.
- 一旦声明const,必须立即赋值。
const p2;
这句话运行会报错: Missing initializer in const declaration
箭头函数
function fun(){
return 10;
}
var foo = ()=>10;
我们可以把上面的第一个函数改写成第二个函数这样的形式,在代码上简单了很多。
箭头函数的小括号也是可以省略的,但省略后可读性差。
箭头函数作用域
箭头函数能保留当前的作用域,使用箭头函数声明的函数,其作用域为声明时所在的位置(作用域)。
箭头函数没有自己的作用域,其作用域来自声明时所在的作用域。
箭头函数tips
箭头函数不能使用new
箭头函数不能使用arguments