一、学习内容:
解构赋值
解构数组
const arr=[1,2,3];
从数组中把值取出来,放在3个变量中保存
let [变量1,变量2,变量3]=arr;
使用let一次性声明3个变量,按照顺序,把数组中的值取出来,赋值给对应的变量
解构对象
const user={
key1:value1,
key2:value2
}
let {key1,key2}=user;
注意:变量名必须是键名
结构函数参数
本质还是解构数组和解构对象
参数是数组
function fn([a,b,c]){}
fn(['a','b','c']);
参数是对象
function fn({name,age}){}
fn({name:'小白',age:12});
模板字符串
解决字符串拼接问题
`字符串${变量名,表达式}字符串`
表达式:能够算出唯一结果的一句代码
对象的简写
1.key和value相同,可以省略,
2.对象中的方法,可以省略:function
ES6的类
语法:
class 类名{
// 构造函数
constructor(形参){
// this.挂载
}
// 原型方法
方法名(){ }
// 静态方法
static 方法名(){ }
}
// 继承
class 子类 extends 父类{
constructor(所有的参数){
super(继承父类的参数)
}
}
自动挂载在new出来的实例对象上
这些属性最终会成为实例对象的属性,如果不需要传递参数,是写死的,就没有必要放在constructor中
ES6模块导入和导出
方式一:单个暴露
暴露-导出
export var userName='xxx';
export function show
导入--引入
import {userName,show} from '文件路径全称';
方式二:一起暴露
导出
export default {key1:value1,key2:value2,....}
导入
import 变量 from '文件路径'
ES6模块化的优势:快
同步和异步
1. 同步:代码从上到下执行,后面的代码,必须等前面代码执行完毕,才能执行
2. 异步:代码从上到下执行,遇到异步代码,异步代码会让开,等待所有同步代码执行完毕,才来执行异步代码
https://console-docs.apipost.cn/ ... 87/7071f058c9a6769a
js中的异步的情况
1. 定时器的那个回调函数
2. 事件处理函数
3. ajax的那个回调函数
控制异步顺序
在异步中嵌套异步控制出现的顺序
解决方法:一个回调函数里边再嵌套一个回调函数
缺点:可读性差,不好维护
Promise
作用:控制异步顺序,解决回调地狱
Promise 有三种状态:进行中,已成功,已失败
调用resolve 进行中---->成功--then
调用reject 进行中---->失败--catch
// 创建一个Promise的实例对象
const p = new Promise(resolve => {
// 1.发送第一个ajax
axios.get('http://121.89.216.9/list').then(res => {
// console.log(res);
console.log('接口1', res.data.data);
resolve(res.data.mes);
})
})
// then:然后
p.then(data => {
return new Promise(resolve => {
axios.get('http://121.89.216.9/show?id=26').then(res => {
console.log('接口2', res.data.mes);
resolve(res.data.mes);
})
})
})
// then
.then(data => {
return new Promise(resolve => {
axios.get('http://121.89.216.9/update?id=26&name=小花').then(res => {
console.log('接口3', res.data.mes);
resolve(res.data.mes);
})
})
|