
Es6相对于 Es5 有很多便利的地方,如:
箭头函数,我们就不必用that = this或 self = this 或 _this = this 或.bind(this)
es6之前,定义默认参数的方法是在一个方法内部定义
Default Parameters(默认参数)
Template Literals (模板文本)
Multi-line Strings (多行字符串)
Destructuring Assignment (解构赋值)
Enhanced Object Literals (增强的对象文本)
Promises
Block-Scoped Constructs Let and Const(块作用域构造Let and Const)
Classes(类)
Modules(模块)
等等等等。。。。。。
包括我们可以再原来代码的基础上进行简化操作:
Es5时我们写一个函数体需要
var show=function(){
return {a:12,b:88}
}
console.log(show())
这样子写
但是在Es6时我们可以简化到
let show=()=>({a:11,b:22})
console.log(show())
可以省略函数体的花括号,不能省略对象的花括号
报错-->当对象的花括号作为了函数体的花括号时,那么里面不能是一个一个的对象,如果需要返还的是一个整体的话,加个括号
以及新增的...
...是用来收集剩余测参数
js 要求...必须是最后一个
function show(a,b,...arr){
console.log(a,b,...arr)
console.log(arr)
}
show(1,3)
3个ajax 无逻辑存在all中
:有逻辑存在的场景,第二个ajak需要第一个ajax返回的结果
Promise.all([
$.ajax({url:"1.json",dataType:"json"}),
$.ajax({url:"2.json",dataType:"json"}),
$.ajax({url:"3.json",dataType:"json"})
]).then((arr)=>{
let [data1,data2,data3]=arr;
console.log(data1,data2,data3)
})
l ajax:用户数据 用户状态
2 ajax 普通用户 普通用户商品
3 ajax Vip用户 加载VIp商品
async await
async 函数在函数前标记关键字 这个一个async函数 作用标注里面含有异步操作
以同步方式写代码: async背后是一套编译内容,执行异步操作,性能高
共同去请求数据 按顺序赋值
async function show(){
let data1=await $.ajax({url:"1.json",dataType:"json"});
let data2=await $.ajax({url:"2.json",dataType:"json"});
let data3=await $.ajax({url:"3.json",dataType:"json"});
console.log(data1,data2,data3)
}
show()
一层层增加 遇见一个wait增加一层回调