JavaScript 编程中的 Polyfills 指的到底是什么?

简介: JavaScript 编程中的 Polyfills 指的到底是什么?

640.png

Polyfills


JavaScript 语言在稳步发展。也会定期出现一些对语言的新提议,它们会被分析讨论,如果认为有价值,就会被加入到 https://tc39.github.io/ecma262/ 的列表中,然后被加到 规范[1] 中。


JavaScript 引擎背后的团队关于首先要实现什么有着他们自己想法。他们可能会决定执行草案中的建议,并推迟已经在规范中的内容,因为它们不太有趣或者难以实现。

因此,一个 JavaScript 引擎只能实现标准中的一部分是很常见的情况。


查看语言特性的当前支持状态的一个很好的页面是 https://kangax.github.io/compat-table/es6/(它很大,我们现在还有很多东西要学)。


Babel


当我们使用语言的一些现代特性时,一些引擎可能无法支持这样的代码。正如上所述,并不是所有功能在任何地方都有实现。


这就是 Babel 来拯救的东西。


Babel[2] 是一个 transpiler[3]。它将现代的 JavaScript 代码转化为以前的标准形式。

实际上,Babel 包含了两部分:


  1. 第一,用于重写代码的 transpiler 程序。开发者在自己的电脑上运行它。它以之前的语言标准对代码进行重写。然后将代码传到面向用户的网站。像 webpack[4] 这样的现代项目构建系统,提供了在每次代码改变时自动运行 transpiler 的方法,因此很容易集成在开发过程中。
  2. 第二,polyfill。
    新的语言特性可能包括新的内置函数和语法构造。transpiler 会重写代码,将语法结构转换为旧的结构。但是对于新的内置函数,需要我们去实现。JavaScript 是一个高度动态化的语言。脚本可以添加/修改任何函数,从而使它们的行为符合现代标准。
    更新/添加新函数的脚本称为 “polyfill”。它“填补”了缺口,并添加了缺少的实现。
    两个有意思的 polyfills 是:
  • core js[5] 支持很多,允许只包含需要的功能。
  • polyfill.io[6] 根据功能和用户的浏览器,为脚本提供 polyfill 的服务。

所以,如果我们要使用现代语言功能,transpiler 和 polyfill 是必要的。


教程中的案例


大多数例子都是可运行的,例如:


alert('Press the "Play" button in the upper-right corner to run');


只有在你的浏览器支持它时才会工作的现代 JS 例子。


Google Chrome 通常是对新语言特性支持更新最快的,在没有任何 transpiler 的情况下,也能很好地运行前沿的演示,当然其他的现代浏览器也挺好。

目录
相关文章
|
4天前
|
前端开发 JavaScript 开发者
探索JavaScript ES6的八种常见使用技巧:开启现代编程之旅
探索JavaScript ES6的八种常见使用技巧:开启现代编程之旅
|
4天前
|
JavaScript 前端开发 开发者
编程笔记 html5&css&js 071 JavaScript Symbol 数据类型
编程笔记 html5&css&js 071 JavaScript Symbol 数据类型
|
3天前
|
JavaScript 前端开发 数据处理
掌握JavaScript中的二进制运算,提升你的编程技能!
掌握JavaScript中的二进制运算,提升你的编程技能!
|
3天前
|
存储 前端开发 JavaScript
深入了解JavaScript:声明式与命令式编程
深入了解JavaScript:声明式与命令式编程
|
3天前
|
消息中间件 存储 设计模式
JavaScript发布订阅模式:实现事件驱动编程!
JavaScript发布订阅模式:实现事件驱动编程!
|
3天前
|
JavaScript 前端开发 Java
JS编程中有哪些常见的编程“套路”或习惯
【5月更文挑战第8天】JS编程中有哪些常见的编程“套路”或习惯
|
4天前
|
Web App开发 JavaScript 前端开发
通过一个实际的例子,介绍 Node.js 的事件驱动编程模式
通过一个实际的例子,介绍 Node.js 的事件驱动编程模式
15 2
通过一个实际的例子,介绍 Node.js 的事件驱动编程模式
|
4天前
|
JavaScript 前端开发 测试技术
在JS编程中常见的编程“套路”或习惯汇总
在当前技术圈快速迭代发展的时代,JavaScript是一种广泛应用于Web开发和移动应用开发的脚本语言,其重要性愈发凸显,尤其是随着技术的不断发展和应用场景的不断扩展,JS编程已经成为了许多开发者必备的技能之一。但是仅仅掌握JS语法和基本知识并不足够,为了写出高质量、可靠性和可维护性的代码,开发者需要掌握一些常见的编程"套路"或习惯,这些套路和习惯能够帮助开发者更好地组织和管理代码,提高开发效率,并减少潜在的错误和问题。在JS编程开发中,有一些常见的编程“套路”或习惯,可以帮助开发者编写高效、可维护且易于理解的代码。让我们来看看其中一些常见的编程“套路”或习惯。那么本文就来分享探讨在JS编程中
27 6
在JS编程中常见的编程“套路”或习惯汇总
|
4天前
|
JavaScript 前端开发 C语言
JavaScript编程语法练习
本篇文章是对于javaScript中if ,switch,while ,do-while,,for语法的作业练习.对于我来说也是对自己知识掌握的一种检验.是对js的基础语法进行的一次练习,通过有趣的示例进行练习,使得对于代码能够增加印象,对于知识的掌握更加透彻.
|
4天前
|
XML 存储 JavaScript
JavaScript的基本语法是编程的基础
【4月更文挑战第20天】JavaScript的基本语法是编程的基础
18 5