类,模块,箭头函数等;所有这些或多或少只是添加到JavaScript的语法糖。在ES5中,我们可以使用设计模式实现相同的目标。
我的问题针对编写ES6代码的安全性,然后出于兼容性原因将其转换为ES5代码。
当需要ES5兼容性时,我应该避免使用哪些ES6功能?
答案 0 :(得分:1)
大多数新语言功能都可以被转换(如Babel和TypeScript之类的转发器证明)。标准库的添加通常可以是polyfilled。
然而,你不能透露的是尾调用优化等功能,因为它们需要修改JavaScript引擎本身。
此外,您不能继承内置构造函数,例如Array
或Error
。最后,代理既不能100%转换也不能填充。但是,几乎所有其他ES6功能都可以降低到ES5(包括可以转换为状态机的发生器)。
查看ES6 compatibility table,详细了解各种转发器支持的所有功能。