第 30 章. 库
目录
购买本书
(广告,请不要屏蔽。)

第 30 章. 库

本章介绍 JavaScript 库。首先解释了 shim 和 polyfill 是什么,它们是两种特殊的库。然后列出了一些核心库。最后,它指向了其他与库相关的资源。

Shim 与 Polyfill

Shim 和 polyfill 是将较新功能改造到较旧 JavaScript 引擎上的库:

示例包括

  • “HTML5 跨浏览器 Polyfill”:由 Paul Irish 编译的列表。
  • es5-shim 是一个(非 polyfill)shim,它在 ECMAScript 3 引擎上改造了 ECMAScript 5 功能。它纯粹与语言相关,在 Node.js 上和在浏览器上一样有意义。

ECMAScript 国际化 API

ECMAScript 国际化 API 是 一个标准的 JavaScript API,它有助于完成与国际化相关的任务:排序规则(对字符串进行排序和搜索)、数字格式化以及日期和时间格式化。本节简要概述并为您指出更多阅读材料。

ECMAScript 国际化 API,版本 1

该 API 的第一个版本提供以下服务

  • 排序规则 支持两种情况:对一组字符串进行排序和在一组字符串中搜索。排序规则由语言环境参数化,并识别 Unicode。
  • 数字格式化。参数包括

    • 格式化样式:十进制、货币(使用哪种货币以及如何引用由其他参数决定)、百分比
    • 语言环境(直接指定或最佳匹配,通过匹配器对象搜索)
    • 数字系统(西方数字、阿拉伯数字、泰语数字等)
    • 精度:整数位数、小数位数、有效数字位数
    • 分组分隔符开启或关闭
  • 日期和时间格式化。参数包括

    • 要格式化的信息以及格式化样式(短格式、长格式、数字格式等)
    • 语言环境
    • 时区

大多数功能都通过全局变量 Intl 中的对象访问,但该 API 还增强了以下方法

  • String.prototype.localeCompare
  • Number.prototype.toLocaleString
  • Date.prototype.toLocaleString
  • Date.prototype.toLocaleDateString
  • Date.prototype.toLocaleTimeString

它是什么类型的标准?

“ECMAScript 国际化 API”(EIA)的标准编号为 ECMA-402。它由 Ecma International 主持,该协会还主持 ECMAScript 语言规范 EMCA-262。这两个标准都由 TC39 维护。因此,EIA 尽可能地接近语言本身,但又不属于 ECMA-262 的一部分。该 API 被设计为可与 ECMAScript 5 和 ECMAScript 6 一起使用。一套一致性测试补充了该标准,并确保该 API 的各种实现是兼容的(ECMA-262 也有类似的测试套件)。

我什么时候可以使用它?

大多数现代浏览器已经支持它或正在支持它。David Storey 创建了一个详细的 兼容性表(指明哪些浏览器支持哪些语言环境等等)。

扩展阅读

ECMAScript 国际化 API 的 规范 由 Norbert Lindenberg 编辑。它提供 PDF、HTML 和 EPUB 格式。此外,还有一些全面的介绍性文章

JavaScript 资源目录

本节介绍 收集 JavaScript 资源信息的网站。这类目录有多种。

以下是 JavaScript 常规目录的列表

专业目录包括

显然,您始终可以直接浏览包管理器的注册表

CDN(内容分发网络)和 CDN 内容的目录包括

致谢

以下人员为本节做出了贡献:Kyle Simpson (@getify)、Gildas Lormeau (@check_ca)、Fredrik Sogaard (@fredrik_sogaard)、Gene Loparco (@gloparco)、Manuel Strehl (@m_strehl) 和 Elijah Manor (@elijahmanor)。

下一页:31. 模块系统和包管理器