摘要: 1.含义 ES2017 标准引入了 async 函数,使得异步操作变得更加方便。 async 函数是什么?一句话,它就是 Generator 函数的语法糖,号称异步的终极解决方案。 前文有一个 Generator 函数,依次读取两个文件。 上面代码的函数gen可以写成async函数,就是下面这样。 阅读全文
posted @ 2019-04-09 07:34 jixhua 阅读(354) 评论(0) 推荐(0) 编辑
摘要: 1.传统方法 ES6 诞生以前,异步编程的方法,大概有下面四种。 回调函数 事件监听 发布/订阅 Promise 对象 Generator 函数将 JavaScript 异步编程带入了一个全新的阶段。 2.基本概念 异步 所谓"异步",简单说就是一个任务不是连续完成的,可以理解成该任务被人为分成两段 阅读全文
posted @ 2019-04-07 21:57 jixhua 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 清明时节雨纷纷,路上行人欲断魂。 借问酒家何处有,牧童遥指杏花村。 二零一九年农历三月初一,清明节。 1.简介 1.1.基本概念 Generator 函数也是 ES6 提供的一种异步编程解决方案,据说在Promise没有诞生之前就靠Generator,但由于用起来比较困难而被取代了。 Generat 阅读全文
posted @ 2019-04-06 23:20 jixhua 阅读(324) 评论(0) 推荐(0) 编辑
摘要: 首先确定已经全局安装过好几遍express和express-generator,但一使用express命令直接报找不到ejs模块,全局和本地安装ejs都没用,nodemon模块报同样错误,找不到debug模块。 原因:本地npm仓库文件冲突(估计)。 使用如下的全局安装方法,安装的模块文件是在C:\ 阅读全文
posted @ 2019-03-30 10:27 jixhua 阅读(925) 评论(0) 推荐(0) 编辑
摘要: 1.概念 遍历器(Iterator)就是这样一种机制。它是一种接口,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署 Iterator 接口,就可以完成遍历操作(即依次处理该数据结构的所有成员)。 Iterator 的作用有三个: Iterator 的遍历过程: (1)创建一个指针对象, 阅读全文
posted @ 2019-03-25 23:09 jixhua 阅读(354) 评论(0) 推荐(0) 编辑
摘要: 1.Promise 的含义 Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了Promise对象。 所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是 阅读全文
posted @ 2019-03-21 08:10 jixhua 阅读(702) 评论(4) 推荐(1) 编辑
摘要: 1.概述 Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API。Reflect对象的设计目的有这样几个。 (1) 将Object对象的一些明显属于语言内部的方法(比如Object.defineProperty),放到Reflect对象上。现阶段,某些方法同时在Obje 阅读全文
posted @ 2019-03-20 22:56 jixhua 阅读(520) 评论(0) 推荐(0) 编辑
摘要: Java可以使用面向切面(AOP)的方法来实现某些统一的操作,比如某个操作的前置通知,后置通知等等,这种操作非常方便,其本质便是动态代理,JS的代理Proxy代理该如何使用呢? 某位大神的实现如下: 然后开始学习Proxy 1.概述 Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改, 阅读全文
posted @ 2019-03-20 15:38 jixhua 阅读(912) 评论(0) 推荐(0) 编辑
摘要: 1.set 基本等于Java的Set集合类型,无序不可重复集,常被用来去重。 基本用法 Set函数可以接受一个数组(或者具有 iterable 接口的其他数据结构)作为参数,用来初始化。 上面代码中,例一和例二都是Set函数接受数组作为参数,例三是接受类似数组的对象作为参数。 上面代码也展示了一种去 阅读全文
posted @ 2019-03-19 22:42 jixhua 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 1.概述 ES5 的对象属性名都是字符串,这容易造成属性名的冲突。比如,你使用了一个他人提供的对象,但又想为这个对象添加新的方法(mixin 模式),新方法的名字就有可能与现有方法产生冲突。如果有一种机制,保证每个属性的名字都是独一无二的就好了,这样就从根本上防止属性名的冲突。这就是 ES6 引入S 阅读全文
posted @ 2019-03-19 17:53 jixhua 阅读(311) 评论(0) 推荐(0) 编辑