ES6 $ ES5
参考地址:
https://www.runoob.com/w3cnote/es6-tutorial.html 菜鸟教程
https://es6.ruanyifeng.com/ 阮一峰
https://www.mithriljs.net/es6.html 中文教程
es6合并数组的写法:
1. var (Es5)
会存在变量提升, 可以在未申明的时候直接使用,返回undefined
let(ES6): 必须先申明再使用,不存在变量提升。
2. this 区别
箭头函数的this指的是定义它的对象
<script>
var obj = {
say: function () {
var f1 = () => {
console.log(this); // obj
setTimeout(() => {
console.log(this); // obj
})
}
f1();
}
}
obj.say()
</script>
因为f1定义时所处的函数 中的 this是指的 obj, 所以不管有多层嵌套,都是 obj
参考: https://blog.csdn.net/generon/article/details/78179386
3. 箭头函数
es5:
var sre = function fun1(){
return '123';
}
function fun2(){
//没有返回值
console.log('as');
}
es6:
let sre = () => '123';
//没有返回值用大括号将逻辑部分扩起来、、
let fun2 = () => {
console.log('as');
}
4.解构(es6)
let [1,2,3]=[a,b,c];
a//1
b//2
c//3
5.
let [1,2,3] = [a, ...b];
a//1
b//[2,3]
generate函数
一是,function关键字与函数名之间有一个星号;
二是,函数体内部使用yield语句,定义不同的内部状态(yield在英语里的意思就是“产出”)。
最简单的Generator函数如下:
function* g() {
yield 'a';
yield 'b';
yield 'c';
return 'ending';
}
g(); // 返回一个对象
更多参考:https://www.jianshu.com/p/e0778b004596
vat promise = new Promise(function(resolve,reject){
//do
});
Promise的构造函数接收一个参数,是函数,并且传入两个参数:resolve,reject,
分别表示异步操作执行成功后的回调函数和异步操作执行失败后的回调函数。
promise的对象有then、catch方法:
.then(function(){
//接受处理resolve(data)调用传过来的参数data
})
.catch(function(){
//接受并且处理reject(data)返回的参数data
})
更多参考: https://www.cnblogs.com/yexiaochai/p/9359943.html