0%

JavaScript 创造于 1994 年,其明确的目的就是为浏览器显示的文档赋予动态行为。今天,Web 对 JavaScript 程序员而言已经是一个完善的应用开发平台。我们通常所说的 JavaScript 指的就是在浏览器中运行的 JavaScript 代码。与之相对的是 服务器端 代码,也就是运行在服务器上的程序。客户端和服务器端经常也被称为 前端后端

阅读全文 »

如果说常规编程是写代码去操作数据,那么元编程就是写代码去操作其他代码。在像 JavaScript 这样的动态语言中,编程与元编程之间的界限是模糊的。在更习惯于静态语言的程序员眼里,即便是迭代对象属性的 for/in 循环这个小小的能力都可能被打上 标签。

阅读全文 »

有些计算机程序(例如科学模拟和机器学习模型)属于计算密集型,这些程序会持续不断地运行,不会暂停,直到计算出结果为止。不过,大多数现实中的计算机程序则明显是异步的,这意味着它们常常必须停止计算,等待数据到达或某个事件发生。

这种异步编程在 JavaScript 中是司空见惯的,这篇文章将介绍三种重要的语言特性,可以让编写异步代码更容易。

阅读全文 »

可迭代对象及其相关的迭代器是 ES6 的一个特性,数组(包括 Typed Array)、字符串、Set 对象和 Map 对象都是可迭代的。这意味着可以通过 for/of 循环来迭代它们,... 运算符能够扩展 可迭代对象,迭代器可以用于结构赋值。而且有些接收 Array 对象的内置函数/构造函数也可以接收任意迭代器。

本章解释迭代器的原理,并展示如何创建可迭代的数据结构。理解迭代后,再学习生成器,它是 ES6 的一个新特性,用于简化迭代器的创建。

阅读全文 »

模块化编程的目标是能够用不同作者和来源的代码模块组装成大型程序。实践中,模块化的作用主要体现在封装和隐藏私有实现细节,以及保证全局命名空间清洁上,因而模块之间不会意外修改各自定义的变量、函数和类。

阅读全文 »

可以将对象看成一种独特的属性集合,每个对象都不一样。但是多个对象经常需要共享一些属性,此时可以为这些对象定义一个类。这个类的实例,各自拥有属性来保存或定义自己的状态,也有方法定义它们的行为。这些方法是由类定义且由所有实例共享的。

阅读全文 »