我一直只是用Javascript和一些JQuery进行编码。在过去的两年中,我经常阅读有关JS vs ES5 vs ES6的文章,并且看到很多术语都转移到了ESx。还请注意,我从未接受过任何程序设计方面的正规教育,并且完全通过“需要完成”的方式来自学。
我已经阅读了维基百科和其他出版物,但老实说,我仍然有些困惑,现在我需要深入了解它,因为我正试图缩小/丑化我的文件,并且这样做的过程是中断并输出9字节文件为“未定义”。但是,有关minify / uglify的大多数文档都指向ES5或ES6,这使我困惑于如何修复代码,以便使minify / uglify正常工作。
我的项目是使用Cordova 8.0 / Ionic v1构建的,并部署到Android(cordova-android 7.1.1)和iPhone(cordova-ios 4.5.1)-因此我不确定我使用的是哪个JS版本。我如何确定我的项目正在使用什么,并知道它的ES5与ES6 ...或其他...,以便我可以适当地清理它以便缩小和丑化?
答案 0 :(得分:0)
JavaScript是ECMAScript或“ ES”的实现。每隔一段时间就会指定一个新版本的ES,从而为该语言,您可以访问的对象等添加新功能。例如,Wikipedia summarizes ES6如下:
第六版(正式名称为ECMAScript 2015)已于2015年6月完成。此更新为编写复杂的应用程序(包括类和模块)添加了重要的新语法,但在语义上与ECMAScript 5严格模式定义了相同的术语。其他新功能包括迭代器和for / of循环,Python风格的生成器,箭头函数,二进制数据,类型化数组,集合(映射,集合和弱映射),promise,数字和数学增强,反射,代理(虚拟对象的元编程)和包装器)和模板文字。完整列表很详尽。
现在,浏览器提供给您的“ JavaScript”中实现了哪些功能,这是另一回事了。实际上,这非常复杂-例如here's a table you can refer to regarding ES6 features。
简而言之,当您编写Cordova应用程序或网站时,您正在使用JavaScript,并且在大多数情况下,可以安全地使用所阅读的任何ES5功能。对于ES6功能,请检查我上面链接的表。由于您使用的是Cordova / Ionic,因此您需要最多看看移动浏览器。
P.S。如果您真的想使用需要支持的浏览器中当前未实现的ES6甚至ES7功能,则使用Babel可能会有些运气。这是JavaScript的“预处理器”;也就是说,它需要您的代码,并将其转换为可能在较旧的浏览器中更好地工作的代码;用最小化的相同方法可使您的代码保持不变,只是使其更小。