箭头操作符
我们知道在JS中回调是经常的事,而一般回调又以匿名函数的形式出现,每次都需要写一个function,甚是繁琐。当引入箭头操作符后可以方便地写回调了
var arr = [1,2,3];
array.foreach(v = > console.log(v));
字符串模板
字符串模板相对简单易懂些。ES6中允许使用反引号 ` 来创建字符串,此种方法创建的字符串里面可以包含由美元符号加花括号包裹的变量${vraible}。
var num=Math.random(); console.log(`your num is ${num}`);
解构
在ES6中,利用解构这一特性,可以直接返回一个数组,然后数组中的值会自动被解析到对应接收该值的变量中。
对象的解构赋值
{
let {name,age,eat} = {name:'tom',age:18,eat:"apple"};
console.log(name);
console.log(age);
console.log(eat);
}
参数默认值,不定参数,拓展参数
function show(name){
//传统的指定默认参数的方式
var name = name || '小明';
console.log("您好"+name);
}
show()
//运用ES6的默认参数
function show(name="小明"){
console.log(`你好 ${name}`);
}
show()
拓展参数
拓展参数则是另一种形式的语法糖,它允许传递数组或者类数组直接做为函数的参数而不用通过apply。
function show(a,b,c,d){
console.log(a,b,c,d)
}
show(1,2,3,4);
ES6
function show(...a){
console.log(...a)
}
show(1,2,3,4);
let与const 关键字
可以把let看成var,只是它定义的变量是块级,而离开这个范围则无效。const则很直观,用来定义常量,即无法被更改值的变量。
var arr = []
for(let i = 0; i<10; i++) {
arr[i]=function(){
console.log(i);
};
}
arr[8]();
var arr=[];
for (var i=0;i<10;i++){
arr[i]=function(){
console.log(i);
};
}
arr[8]();
for of 值遍历
我们都知道for in 循环用于遍历数组,类数组或对象,ES6中新引入的for of循环功能相似,不同的是每次循环它提供的不是序号而是值。
var arr = [ "a", "b", "c" ];
for (i of arr) {
console.log(i);//输出 a,b,c
}
Promises
Promises是处理异步操作的一种模式,
Promise 对象有三种状态:
-
Fulfilled 可以理解为成功的状态
-
Rejected 可以理解为失败的状态
-
Pending 既不是 Fulfilld 也不是 Rejected 的状态,可以理解为 Promise 对象实例创建时候的初始状态