es6文档: caibaojian.com/es6/class.h…
一、Let const 二、变量的解构赋值 三、proxy。reflect nexttick docker
Es6可以看作
构造函数的另一种写法 class。 类的数据类型就是函数,类本身就指向构造函数 也可以直接对类使用 new命令
Promise实例
将多个promise实例包装成一个新的promise实例,成功的时候返回的是一个结果数组,失败的时候返回最先被reject失败状态的值。 Promse.all在处理多个异步处理时非常有用,比如说一个页面上需要等两个或多个ajax的数据回来以后才正常显示,在此之前只显示loading图标
promise.race: Promise.race([p1, p2, p3])里面哪个结果获得的快,就返回那个结果,不管结果本身是成功状态还是失败状态
模块化-Es6之类与继承
import: 使用export命令定义了模块的对外接口以后,其他 JS 文件就可以通过import命令加载这个模块。 export default命令为模块指定默认输出。
注意: export命令规定的是对外的接口,必须与模块内部的变量建立一一对应关系。
ES6模块化有以下限制:
1.变量必须声明后再使用
2.函数的参数不能有同名属性,否则报错
3.不能使用with语句
4.不能对只读属性赋值,否则报错
5.不能使用前缀 0 表示八进制数,否则报错
6.不能删除不可删除的属性,否则报错
7.不能删除变量delete prop,会报错,只能删除属性delete - global[prop]
8.eval不会在它的外层作用域引入变量
9.eval和arguments不能被重新赋值
10.arguments不会自动反映函数参数的变化
11.不能使用arguments.callee
12.不能使用arguments.caller
13.禁止this指向全局对象
14.不能使用fn.caller和fn.arguments获取函数调用的堆栈
15.增加了保留字(比如protected、static和interface)
优点:
1.减少命名冲突
2.避免引入时的层层依赖
3.可以提升执行效率
es6补充
const的使用 const在很多语言中已经存在了,比如C/C++中,主要的作用是将某个变量修饰为常量。 在JavaScript中也是如此,使用const修饰的标识符为常量,不可以再次赋值。 建议:在ES6开发中优先使用我们的const,只有需要我们的标识符的时候才使用let,使用const可以用来保证数据的安全性。 const作为常量,我们不能改它对内存的指向,但可以改它所指向的内存的值。 如果你觉得这样说你有点晕的话,来看看我们的练习。
1.注意一:一旦给const修饰的标识符被赋值之后,不能修改
// const name='why';
// name='abc';
2.注意二:在使用const定义标识符,必须进行赋值 // const name; 3.注意三:常量的含义是指向的对象不能修改,但是可以改变对象内部的属性。
const obj={
name:'imyanglan',
age:18,
gender:'女'
}
obj.name='imqingfen';
obj.age='37';
obj.gender='男';
//为什么这样赋值不会出错有问题? 因为这里是直接改的内存的值,而上面那个是改变内存的指向
1.熟悉的增强写法
const name='why';
const age=18;
const height=1.88;
//ES6的增强写法
const obj={
name,
age,
height
}
2.函数的增强写法 // ES5的写法
// const obj={
// run:function () {
//
// },
// eat:function () {
//
// }
//
// }
// ES6的写法
const obj={
run(){
},
eat(){
}
}
es6的Map解析: (链接)
[https://juejin.cn/post/6844903881906847752]()
Set与其他数据结构的互相转换