12

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

var verLongKey= `834r845784576485
y84ery5845y485yu843
483y53485684576845
jhu87843647356756745==457485,mh
ererthe8t0998785==ery8`;

但旧浏览器(如 android 默认浏览器)不支持模板字符串。

如何获得此功能的 polyfill?试过了babel。我们让这个 polyfill 适用于所有功能,但template string. 目前modernizr用于检测支持并显示使用其他浏览器的警报。这种方法对用户来说很烦人。我怎样才能获得一些 polyfill 以使其在不支持的浏览器上工作?

是什么让我们如此template strings。问题是我不能使用这些工具(trceurbabel),因为这个文件是从puppet. 我们不可能在那里运行这些转译器。想在浏览器端添加一些 polyfill。密钥中包含一些\n字符,需要保留这些字符。我想要一些 polyfill,所以我可以在 configs js 文件之前包含。

4

1 回答 1

9

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

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

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

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

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

于 2016-02-29T08:27:27.803 回答