Babel 将es6转换成es5
解构赋值:
解构数组
const arr=[1,2,3]
从数组中把数组的每一个值都取出来,把它放在三个变量中进行保存
let[变量1,变量2,变量三]=arr[];
使用let一次性声明了三个变量,按照顺序,将数组中的值取出来,赋值给对应变量
解构对象
let obj={
key1:value1,
key2:value2
}
let {key1,key2}
解构函数的参数
本质也是结构数组或者对象
参数是数组的时候
function fn(){}
参数是对象的时候
解构的实际应用
交换变量值
模板字符串 字符串的拼接问题
`${变量名,表达式}`
表达式:能够算出唯一结果的一句代码
换行的时候直接敲回车
对象的简写es6
key和vlaue 可以只写一个,
对象的方法可以省略:function
es6的类
class
声明
class 类名{
如果不需要传递参数,就不用写在constructor
直接写在类里 直接写死 会自动挂载在this上
构造函数
constructor(name,age){
this.name=name;
this.age=age;
添加原型方法
方法名(){
}
静态方法
static 方法名(){
}
}
es6继承
extends 父函数
constructor(){
super();
}
class 类名{
constructor(xingcan){
this挂载
}
原型方法
方法名(){}
静态方法
static 方法名(){
}
继承
class 子类 extends 父类{
constrctor(参数){
super(继承自父类属性);
}
}
}
ES6模块化导入和导出
语法:
方式一:
单个的暴露,暴露 ---导出 export var username=“xxx”;
export function show(){}
导入---引入
import{username,show}form“文件路径的全称”
2、一起暴露
暴露---导出 export default { key1:value2,key2:value2}
导入 引入 import 变量 from “文件路径”
script type=“module”
es6的模块化开发
快
同步和异步
同步:代码从上到下执行,后面的代码必须等前面的代码执行完毕之后再执行
2:代码从上到下执行,遇到异步代码,异步代码会让路,等待所有的同步代码执行完毕,才执行异步代码
js的异步情况
1、定时器的回调函数
2、事件处理函数的回调函数
3、ajax的回调函数
控制异步顺序
1、回调函数里面嵌套回调函数
会造成回调地狱。
可读性查
不好维护
Promise
作用:控制一部的顺序,解决回调地狱。
let Promise=new Promise((resolve,reject)=>{
三种状态 进行中 已成功 已失败
调用reslove 进行中--成功
调用reject 进行中--失败
});
|