摘要: 编程风格编程风格本章探讨如何将 ES6 的新语法,运用到编码实践之中,与传统的 JavaScript 语法结合在一起,写出合理的、易于阅读和维护的代码。多家公司和组织已经公开了它们的风格规范,下面的内容主要参考了 Airbnb 公司的 JavaScript 风格规范。块级作用域(1)let 取代 varES6 提出了两个新的声明变量的命令:let和const。其中,let完全可以取代var,因为两... 阅读全文
posted @ 2018-01-16 14:18 Chen,ChunChang 阅读(174) 评论(0) 推荐(0) 编辑
摘要: Module 的加载实现Module 的加载实现上一章介绍了模块的语法,本章介绍如何在浏览器和 Node 之中加载 ES6 模块,以及实际开发中经常遇到的一些问题(比如循环加载)。浏览器加载传统方法HTML 网页中,浏览器通过 上面代码中,由于浏览器脚本的默认语言是 JavaScript,因此type="application/javascript"可以省略。默认情况下,浏览器是同步加载 J... 阅读全文
posted @ 2018-01-16 14:17 Chen,ChunChang 阅读(217) 评论(0) 推荐(0) 编辑
摘要: Module 的语法Module 的语法概述历史上,JavaScript 一直没有模块(module)体系,无法将一个大程序拆分成互相依赖的小文件,再用简单的方法拼装起来。其他语言都有这项功能,比如 Ruby 的require、Python 的import,甚至就连 CSS 都有@import,但是 JavaScript 任何这方面的支持都没有,这对开发大型的、复杂的项目形成了巨大障碍。在 ES6... 阅读全文
posted @ 2018-01-16 14:16 Chen,ChunChang 阅读(637) 评论(0) 推荐(0) 编辑
摘要: Decorator修饰器类的修饰许多面向对象的语言都有修饰器(Decorator)函数,用来修改类的行为。目前,有一个提案将这项功能,引入了 ECMAScript。@testable class MyTestableClass { // ... } function testable(target) { target.isTestable = true; } MyTestableCla... 阅读全文
posted @ 2018-01-16 14:14 Chen,ChunChang 阅读(247) 评论(0) 推荐(0) 编辑
摘要: Class 的基本语法Class 的基本语法简介JavaScript 语言中,生成实例对象的传统方法是通过构造函数。下面是一个例子。function Point(x, y) { this.x = x; this.y = y; } Point.prototype.toString = function () { return '(' + this.x + ', ' + this.y +... 阅读全文
posted @ 2018-01-16 14:13 Chen,ChunChang 阅读(827) 评论(0) 推荐(0) 编辑
摘要: async 函数async 函数含义ES2017 标准引入了 async 函数,使得异步操作变得更加方便。async 函数是什么?一句话,它就是 Generator 函数的语法糖。前文有一个 Generator 函数,依次读取两个文件。const fs = require('fs'); const readFile = function (fileName) { return new Pro... 阅读全文
posted @ 2018-01-16 14:11 Chen,ChunChang 阅读(224) 评论(0) 推荐(0) 编辑
摘要: Generator 函数的异步应用Generator 函数的异步应用异步编程对 JavaScript 语言太重要。Javascript 语言的执行环境是“单线程”的,如果没有异步编程,根本没法用,非卡死不可。本章主要介绍 Generator 函数如何完成异步操作。传统方法ES6 诞生以前,异步编程的方法,大概有下面四种。回调函数事件监听发布/订阅Promise 对象Generator 函数将 Ja... 阅读全文
posted @ 2018-01-16 14:07 Chen,ChunChang 阅读(194) 评论(0) 推荐(0) 编辑
摘要: Generator 函数的语法Generator 函数的语法简介基本概念Generator 函数是 ES6 提供的一种异步编程解决方案,语法行为与传统函数完全不同。本章详细介绍 Generator 函数的语法和 API,它的异步编程应用请看《Generator 函数的异步应用》一章。Generator 函数有多种理解角度。从语法上,首先可以把它理解成,Generator 函数是一个状态机,封装了多... 阅读全文
posted @ 2018-01-16 14:06 Chen,ChunChang 阅读(291) 评论(0) 推荐(0) 编辑
摘要: Iterator 和 for...of 循环Iterator 和 for...of 循环Iterator(遍历器)的概念JavaScript 原有的表示“集合”的数据结构,主要是数组(Array)和对象(Object),ES6 又添加了Map和Set。这样就有了四种数据集合,用户还可以组合使用它们,定义自己的数据结构,比如数组的成员是Map,Map的成员是对象。这样就需要一种统一的接口机制,来处理... 阅读全文
posted @ 2018-01-16 14:05 Chen,ChunChang 阅读(196) 评论(0) 推荐(0) 编辑
摘要: Promise 对象Promise 对象Promise 的含义Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了Promise对象。所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,从它可... 阅读全文
posted @ 2018-01-16 14:03 Chen,ChunChang 阅读(239) 评论(0) 推荐(0) 编辑