Es6插章(二)

188 阅读1分钟

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增加一层回调