BabelJS - ES6代码执行

BabelJS 是一个JavaScript转换器,它将添加到JavaScript的新功能转换为ES5,或者根据给定的预设或插件做出反应. ES5是最古老的JavaScript形式之一,支持在新旧浏览器上运行而不会出现任何问题.在本教程的大多数示例中,我们已将代码转换为ES5.

我们已经看到许多功能,如箭头函数,类,promises,生成器,异步函数等添加到ES6,ES7和ES8.在旧浏览器中使用任何新添加的功能时,会引发错误. BabelJS有助于编译代码,该代码向后兼容旧版浏览器.我们已经看到ES5在旧浏览器上运行良好,没有任何问题.因此,考虑到项目环境细节,如果需要在旧版浏览器上运行,我们可以在项目中使用任何新功能,并使用babeljs将代码编译到ES5,并在任何浏览器中使用它而不会出现任何问题.

让我们考虑以下示例来理解这一点.

示例

<!DOCTYPE html>
<html>
   <head>
      <title>BabelJs Testing</title>
   </head>
   <body>
      <script type="text/javascript" src="index.js"></script>
   </body>
</html>

index.js file

var _foo = () => {
   return "Hello World"
};

alert(_foo());

输出

当我们在Chrome浏览器中运行上述html时,我们得到以下输出 :

Chrome浏览器

当在Firefox中运行HTML时,它会生成以下内容:输出&减去;

生成

当运行相同的HTML时Internet Explorer,它会生成以下语法错误 :

Internet Explorer

我们使用了ES6 Arrow功能;如上所述,同样不适用于所有浏览器.为了实现这一点,我们让BabelJS将代码编译到ES5并在所有浏览器中使用它.

将使用babeljs将js文件编译为es5并在浏览器中再次检查.

编译es5

在html文件中,我们将使用index_new.js,如图所示低于 :

<!DOCTYPE html>
<html>
   <head>
      <title>BabelJs Testing</title>
   </head>
   <body>
      <script type="text/javascript" src="index_new.js"></script>
   </body>
</html>

index_new.js

"use strict";

var _foo = function _foo() {
   return "Hello World";
};

alert(_foo());

Chrome输出

Chrome输出

Firefox浏览器输出

Firefox浏览器输出

IE浏览器输出

IE浏览器输出