ES6 规范
let —— 块声明符
let常用于在如函数体等花括号形成的块声明变量。其他自不必多说。这里重点将一下let和var的主要区别
var的声明无顺序要求,而let需要。也就是说let声明变量的语句要在它使用之前,否则会undefined
const声明
const声明对象为常量,也就是常量声明法。不过这里值得注意的是,若该变量是一个普通的常量,当然是不可变的。但如果该变量是一个复杂的对象,如对象,或者数组,那么它是内部的元素是可变的
… 展开
es6语法新增了…这个符号展开或者收集的功能,相当于原本js中的apply,concat函数,这里举一个例子
const a = [1,2,3]
const b = [...a,4,5,6]//b:[1,2,3,4,5,6]
解构语法
我们可以用将一个对象进行解构,如
const item = {
a:1,
b:2,
c:3
}
//这里将item进行解构
var {a,b,c} = item;
同名元素赋值省略原则
es6为我们准备了便捷的书写方式,我们如果想表示 a:a
,只需要写成a就行了
箭头函数
箭头函数具有优美的形式,常常适合用于参数比较少的情况
const f = (params) => {
}
值得注意的是箭头函数的this指向最外层的对象,通常是windows,就省去了普通函数要加上bind(this)
的麻烦
for…in 和for…of的区别
- for…in 是指在数组的键索引上循环
- for …of 是在数组的值上循环 => 相当于迭代器
下面以一个例子来说明问题
var a = ['a','b','c','d','e'];
for (var idx in a){
console.log(idx);
//0,1,2,3,4,5
}
for (var value of a){
console.log(val);
//'a','b','c','d','e'
}