简要介绍:ECMAScript 6 的语法已经大量用于实际项目,在这里记录一下,ES6的一些常用的新增语法。
1.let命令和const命令
(1)首先来看let命令:用于声明变量,表示在块级作用域内有效。
例子:
{
var a=1;
}
a //a=1
{
let b=2;
}
b //undefined;
说明:对比与var,let是块级作用域里面的变量,通过let声明的变量只在改块级作用域内有效。
注意:
(I)不存在变量提升(let声明不会前置)
{
console.log(a);
let a=1;//error
}
(II)不允许在同一个块级作用域内重复声明同一个let变量
{
let a=1;
let a=2;//error 重复声明
}
(2)const命令:声明了一个只读的常量,一旦声明,这个常量的是不可改变。
例子:
const PI=3.1415926;
PI=3;//error,PI的值是常量不可改变。
注意:
(I)同样const的值不存在变量提升。
(II)只在块级作用域内有效。
(III)不能在块级作用域内重复声明。
2.Array.from和Array.of构成新的数组
(1)Array.from:用于将可遍历对象(iterable),或者是类似于数组对象转化成一个新的数组。
例子:
let arrayLike={
"0":a,
"1":b,
"2":c,
length:3
}
let newArray=Array.from(arrayLike);//生成数组[a,b,c];
说明:通过Array.from可以将类数组对象或者可遍历对象转为成新的数组。
注意:
(I)字符串和Set结构都具有Iterator接口,可以使用Array.from或者…运算符。
{
let str="abc",
let arr=[...str];
}
或者
{
let str="abc";
let arr=Array.from(str);
}
对于具有Iterator接口,这两种方式,都可以讲其转化为数组。
(2)Array.of:用于将一组值转化为数组。
{
let arr=Array.of(1,2,3);//生成新的数组[1,2,3];
}
说明:Array.of仅仅用于将一组值转化为数组。
3.for of 实现数组的遍历(以及keys(),value(),entries()等方法)
{
let arr=[a,b,c];
for( let index of arr.keys()){
console.log(index);//遍历得到index的值,也就是数组的索引,key值,依次输出1,2,3
}
}
{
let arr=[a,b,c];
for( let value of arr.values()){
console.log(value);//遍历得到value的值,也就是数组元素的值,value,依次输出a,b,c;
}
}
{
let arr=[a,b,c];
for( let [index,value] of arr.entities()){
console.log(index,value) //遍历输出,key值和value值。
}
}
4.箭头函数
首先来举几个箭头函数的例子:
var a=x=>x;
等价于:
var a=function(x){
return x;
}
var sum=(a,b)=>a+b;
等价于:
var sum=function(a,b){
return a+b;
}
说明:从上述的两个简单的例子中我们可以看出,箭头的左边是传递的参数,箭头的右边是返回的结果。
注意:
(I)如果箭头函数返回值,多于一行,需要将返回值用括号括起来:
var people=(id,name)=>({id:id,name:name});
等价于:
var people=function(id,name){
return {
id:id,
name:name
}
}