我有一个Node.js项目,我在服务器上使用ES6语法,在浏览器端使用非ES6语法。我也尝试在浏览器上使用ES6语法,但是当我访问iPhone上的网站时遇到问题,所以我切换回旧的javascript语法'。
我可以从Github上的Bootstrap代码看到他们在Bootstrap v4的代码中使用ES6(const,箭头函数等)。
在所有使用过的浏览器都支持使用ES6语法之前,它是否聪明?我假设总会有一些浏览器被使用,不支持新语法,那么为什么有人敢于转向新语法呢?我知道它会很少,但由于ES6可以实现的所有功能在没有ES6的情况下也是可能的,我不知道如何使用新语法来降低我网站上潜在客户的损失。< / p>
是否有一些脚本可以确保我的所有访问者&#39;浏览器支持ES6?
答案 0 :(得分:4)
在所有使用过的浏览器都支持使用ES6语法之前,它是否聪明?
不是真的。您可以将其转换为例如babel(这就是您引发的Bootstrap v4,also does)。
事实上,即使您确保使用现代JS运行时,也可能想要使用babel进行转换,以使用not-yet-even-quite-standardised language features。重点不是新的用户可见功能,而是程序员的工作效率,您可以通过ES6以多种方式提升。
您将找到有关如何使用babel for instance in this blog post转换浏览器预期代码的明确说明。
因为在没有ES6的情况下,ES6可能实现的所有功能都是可能的,但我不知道如何使用新语法来减少在我的网站上丢失潜在客户的成本。
在撰写本文时,转换是一个非常重要的步骤,除非您知道您正在针对特定的JS执行环境(例如基于已知版本的WebKit / JavaScriptCore的混合Web浏览器/桌面或移动应用程序) )。
对于现在几乎所有现代浏览器中存在的许多API,使用隐藏平台差异的抽象多年来也是必不可少的,特别是(但不限于)旧版本的IE,所以如果是的话,你将会花费很长时间。您的目的旧浏览器版本很重要。但是,不应该阻止你获得生产力的好处!