培训机构|使用Babel编写与浏览器兼容的JavaScript

培训机构|使用Babel编写与浏览器兼容的JavaScript

JavaScript兼容性问题的兴起
随着越来越多的开发人员为社区做出贡献 , 越来越多的框架版本应运而生 。 另一方面 , 所有浏览器都有不同的发展理念 。 并非所有的JavaScript创新都被浏览器采用以获得本机支持 。 这反过来又导致JavaScript语言与所有浏览器对它的全面支持之间存在巨大差距 。 然而 , 较旧的版本却乱七八糟 , 因为它们缺乏对JavaScript的支持 。 即使是不同版本的框架 , 当放在一起时 , 也增加了开发人员的焦虑 。
使用Babel的JavaScript
开发人员在集成不同库的功能时都面临着挑战 , 不同版本的JavaScript通常会导致工作一团糟 , 这是影响效率的一个重要原因 。
Transpiler经常被误认为是编译器 , 但它们有点不同 , 他们处理源代码并返回一个更坚固和兼容的源代码 , 开发人员甚至可以定制Babel以更好地适应他们 。
Babel是怎么工作的?
Babel的函数非常简单明了 。 它将不兼容的源代码或库功能转换为浏览器支持的代码 , 你的浏览器可能会发现这些代码是兼容的 。 Babel通过三个简单的步骤做到这一点 。
解析
它要做的第一件事是在代码中查找传递的不受支持或不兼容的部分 。 它通过使用AST(抽象语法树)来实现这一点 。
【培训机构|使用Babel编写与浏览器兼容的JavaScript】
抽象语法树
正如名称本身所示 , 它是代码的抽象表示 。 这与JSON的工作方式类似 。 它创建作为输入的程序代码的数据结构 。 有了这种表示 , 代码的操作变得更容易了 。 这是解决编码转换问题的一种简单而有效的方法 。
转化
源代码中突出显示的部分将转换为兼容的部分 。 这是在AST的帮助下完成的 , 以免妨碍程序的任何功能 。 你甚至可以自定义自己的Babel插件 。
一代
现在你已经有了转换后的代码 , 现在你需要额外的插件来帮助你有效地使用转换后的代码 。 源代码映射在这方面有帮助 , 它与V8(Chrome和Node.js)配合得很好 。 它允许你将传输的代码带到地址网站url , 以便对其进行解析 。
用于兼容性的其他Babel插件
Babel本身不足以让JavaScript兼容 , 你需要更多的工具来实现高效的跨浏览器兼容性 , Webpack是另一个有助于减少捆绑包大小的工具 , 我们前面提到的Sourcemap在绑定或链接时也很有用 。 Babel也有很多预设 , 用于为旧浏览器传输JavaScript代码或解决ECMAScript版本控制问题 , Babel中的Polyfills包括自定义再生器运行时和core.js 。 它模拟了应用程序中使用的ES2015+自定义环境 , 这意味着你甚至可以使用promise和weakmap等新内置功能以及一些新的阵列功能 , 它会自动加载Babel 。