已关闭。此问题为opinion-based。当前不接受答案。
**想要改进此问题吗?**请更新问题,以便editing this post可以用事实与引用来回答.
四年前就关门了。
Improve this question
我现在正在学习JavaScript,有些人说,在我学习了HTML、CSS和vanilla Javascript之后,我需要有关于ES6/ES 2015的知识。当我在Youtube上看教程时,它说我们需要Babel或类似的东西来让浏览器阅读它。所以我想知道,因为那个视频不是那么老(但仍然很老)。是否仍然有必要有Babel或我应该跳过这个Babel的事情?
2条答案
按热度按时间qjp7pelc1#
Babel是一个JavaScript-to-JavaScript编译器,有时称为 transpiler,它可以将使用一组特性(例如ES 2015及更高版本中的特性)编写的代码转换为可以在不支持这些特性的JavaScript环境中运行的代码。(还有其他编译器,Babel只是一个非常流行的编译器。)
是否使用Babel将ES 2015+代码移植到ES 5完全取决于您,并且取决于您希望支持的目标环境。如果您希望支持任何版本的Internet Explorer¹(包括IE11),你就需要transpile,如果你只需要支持最前沿的Chrome、Firefox和Edge,或者在其他环境中,您可以依赖正在使用的特性(例如最新的Node.js安装),但您不需要。
Kangax有一组handy tables,用于说明JavaScript引擎和/或浏览器支持哪些更现代的JavaScript功能(不仅是ES 2015,还有ES 2016、ES 2017等)。
Babel(以及类似的工具)除了使用最新的标准化特性之外,至少在两个方面是有用的:
1.你可以使用巴别塔(和类似的)利用那些可能很快就会标准化的特性,尽管它们还没有得到很好的支持。但是the proposal they're in仍然(截至2018年6月撰写本文时)第3阶段(并且在阶段2和阶段3之间来回几次)由于与公共类字段无关的原因,甚至像Chrome、Firefox和Edge这样的最先进的浏览器也不支持公共类字段。
1.您可以编写自己的Babel(或类似的)转换,为自己的项目向JavaScript添加自己的特性(或使用其他人编写的特性),即使这些特性永远不会成为JavaScript的一部分或在您的项目之外使用。
¹注:大多数版本的Windows都有Internet Explorer is sunset as of June 15th 2022。但Microsoft Edge中有一个“Internet Explorer”模式,天哪,它实际上从该模式的JavaScript环境中删除了模板文字、
for-of
等特性。y0u0uwnf2#
不要离题--作为一个初学者,我建议远离工具和配置。这可能是压倒性的,特别是在JS的土地。只要专注于学习,工具将在稍后出现。你可以立即开始使用ES6,而不需要任何工具。
一种方法是使用在线REPL或Playground。我喜欢的一个工具是https://stackblitz.com。这个网站让你真实的感受到从
npm
导入模块来帮助你的代码。如果你在Chrome上,你可以打开开发者控制台,看到你从Playground发送到开发者控制台的消息。https://developer.chrome.com/devtools
这是我做的一个Playground,让你开始
https://stackblitz.com/edit/react-t3wxth?file=index.js