es6 对象的扩展

1 属性的简洁表示法【es6对象中,直接写变量,属性名为变量名,属性值为变量值】

2 方法的简写

es6 对象的扩展_第1张图片

3 属性名表达式

es6 对象的扩展_第2张图片

es6 对象的扩展_第3张图片

4 对象中的扩展运算符

 

5  疑问: a   Object.assign  与  $.extend的区别  Object.assign是es6中提供的方法   $.extend 是jquery提供的方法

Symbol 可以确保  属性的唯一性

Set  Map  数据结构  类似java

Proxy  添加访问对象的拦截器   

es6 对象的扩展_第4张图片

Reflect  增加访问对象的方式  类似于Object

Promise   异步操作的封装

yield   控制函数的运行, 用来暂停和继续一个生成器函数

generator 函数是一个状态机,封装了多个内部状态

执行Generator函数会返回一个遍历器对象,除了状态机,还是一个遍历器对象生成函数

Generator函数有2个特征:a: function关键字与函数名之间一个星号  b: 函数体内使用yield表达式,定义不同的内部状态

 

Thunk  自动执行Generator函数的一种方式【任何函数,只要参数有回调函数, 就可以写成Thunk函数的形式】

es6 对象的扩展_第5张图片

co模块:【Generator是一个异步操作的容器, 自动执行需要一种机制,当异步操作有了结果, 能够自动交回执行权】

async函数  就是  Generator函数的语法糖

async函数就是将Generator函数的星号 * 替换为 async , 将yield替换为await

6 类的修饰  修饰器是一个对类进行处理的函数, 修饰器函数的第一个参数,就是所要修饰的目标类

是在编译阶段执行, 而不是在运行阶段

es6 对象的扩展_第6张图片

7  方法的修饰   修饰器的本意是要 修饰 类的实例,但是这个时候实例还没生成,所以只能去修饰原型

 

es6 对象的扩展_第7张图片

8   module [实现模块功能]

es6模块设计的思想尽量静态化, 使得编译时就能确定模块的依赖关系,以及输入和输出的变量

原有的commonJs模块

es6 对象的扩展_第8张图片

es6模块加载

es6 对象的扩展_第9张图片

9  es6的模块自动采用严格模式,export 命令

es6 对象的扩展_第10张图片

es6 对象的扩展_第11张图片

export命令可以出现在模块的任何位置, 如果处于块级作用域内,就会报错, 因为处于条件代码块之中,就没法

做静态优化了,违背了es6模块的设计初衷

es6 对象的扩展_第12张图片

es6 对象的扩展_第13张图片

10   默认输出和正常输出

es6 对象的扩展_第14张图片

export default命令用于指定模块的默认输出, 一个模块只能有一个默认输出,因此export default命令只能使用一次

所以 import 命令后面不需要加大括号, 因为只可能唯一对应  export  default   命令

 

 

 

 

你可能感兴趣的:(es6 对象的扩展)