HTML5,ES6模板字符串polyfill

lok*_*008 12 javascript html5 es6-shim

对于我们的应用程序,我们需要使用新功能template string.

var verLongKey= `834r845784576485
y84ery5845y485yu843
483y53485684576845
jhu87843647356756745==457485,mh
ererthe8t0998785==ery8`;
Run Code Online (Sandbox Code Playgroud)

但旧的浏览器(如Android默认浏览器)不支持模板字符串.

如何获得此功能的polyfill?尝试babel.我们让这个polyfill适用于所有功能但是template string.目前modernizr用于检测支持和显示警报以使用其他浏览器.这种方法对用户来说很烦人.如何让一些polyfill在非支持的浏览器上运行?

是什么让我们这样template strings.问题是我不能使用这些工具(trceur,babel),因为这个文件是在生产中生成的puppet.我们无法在那里运行这些转发器.想在浏览器端添加一些polyfill.键中包含一些\n需要保留它们的字符.我想要一些polyfill所以,我可以在configs js文件之前包含.

小智 9

有3个主要的ES6 polyfill可以为您提供模板字符串支持,但没有一个可以完全支持,正如您在kangax的ECMAScript支持表中看到的那样.

  • Traceur - 这是Google的ECMAScript polyfill,支持一些ECMAScript 6和ECMAScript的下一个功能,它有4/5支持模板字符串,没有toString转换.

  • Babel - 另一种ECMAScript polyfill,一般有更多的支持,但也只有4/5支持模板字符串,也没有toString转换.

  • es6-shim - 我不确定它是否已经开发了,但它无论如何都没有模板字符串.

但是你可能想在使用模板字符串之前三思而后行,它只是字符串的语法糖,+用于添加变量,而\用于多行.

  • Traceur和Babel是*转发器*,而不是polyfill.可能有可能在客户端运行它们,但不建议这样做. (9认同)
  • 模板字符串的"语法糖"看起来比使用`\`转义每个换行符要好得多,或者用`+`转换为大量串联.特别是当你需要在所述字符串中插入变量时. (6认同)