我正在努力理解巴别塔的重要性...因此ES6应运而生,并为我们提供了丰富的箭头函数、更短的语法等等。那么为什么我们需要将ES6编译成传统的JS呢?是不是因为有更老的浏览器不能解释新的JS语法?或者它与保持源代码一致性有关吗?我知道这是个菜鸟问题--但是,嘿,我是菜鸟!任何有见地的人都很感谢!
发布于 2016-09-09 08:16:45
虽然这里的答案都是正确的,但巴别塔不仅仅是关于ES6 (ES2015)的。ECMA标准委员会已经同意发布JavaScript语言的年度更新。Babel总是会集成这些标准,而我们不知道是否所有的浏览器都会,如果他们这样做了,他们是否能够跟上不断变化的标准。
有了Babel这样的转译器,我们可以领先于web浏览器,并在发布时使用ECMAscript的新功能,而不是等待浏览器制造商集成这些功能,使用polyfills或其他任何东西。它还允许最终用户定制他们想要使用的功能,并构建他们自己的语言版本。
要听巴别塔的创建者谈论这一点,你可以收听this JavaScript Jabber episode。
发布于 2017-07-29 01:32:36
如今,大多数现代浏览器几乎完全支持es6。从96%到99%的支持率。
https://kangax.github.io/compat-table/es6/
缺少的主要内容是ES6模块。目前只有Safari支持ES6模块。对ES6模块的支持应该会出现在Google Chrome60中。
为了运行ES6代码,您必须使用诸如Browserify或Webpack之类的捆绑器将您的ES6代码模块组合到一个JavaScript文件中。我很幸运地使用了Webpack 3.0进行捆绑。
Babel负责将新语言功能转换为旧语言功能。
您可以编写可以在许多浏览器上运行的代码,只需使用bundler,而无需使用Babel。通过使用Babel转译代码,您的代码确实会变得更加复杂,因此您应该只在需要时才这样做。
发布于 2016-09-09 08:01:35
并非所有浏览器都支持ES6。还有像React这样的东西。
http://www.webbrowsercompatibility.com/es6/desktop/
https://stackoverflow.com/questions/39401836
复制相似问题