javascript - 用于 javascript 模板字符串的 Polyfill

标签 javascript ecmascript-6 template-strings

是否有任何使用反引号的 javascript 模板字符串的 polyfill?我指的是看起来像这样的代码:

var textTemplate = `
   <h1>My Template String</h1>
   <p>Some more stuf here...</p>
`;

我不想使用 babel 之类的转译器或任何其他需要构建步骤的工具。此外,将模板放在单独的脚本标记内的 javascript 模板引擎对我来说也不理想。

我真的很想能够在同一个文件中使用模板字符串和其他标准 ES5 代码。这可能吗?

编辑:我特别需要模板字符串才能在 IE11 中工作。我意识到他们已经在大多数其他浏览器中这样做了。我现在也意识到 polyfill 不是我想要的正确术语。

最佳答案

Are there any polyfills for javascript template strings that use a backtick?

没有。您不能为反引号所在的新 Javascript 语法提供 polyfill。 polyfill 不会影响代码的编译或一行代码的执行。它只能影响运行时的函数调用。

新 Javascript 语法的解决方案是从新语法转换为 ES5 兼容代码。

你甚至不能创建一个函数来执行相同类型的字符串替换(当传递一个普通的 Javascript 引用字符串时),因为函数实现将无法访问通常在反引号模板中使用的局部范围变量。

还有其他类型的字符串替换可以在函数中实现,但是你必须传递你想要替换的值(比如 C 中的 sprintf 并使用与模板文字不同的语法)而不是仅仅使用变量模板字符串中的名称。

关于javascript - 用于 javascript 模板字符串的 Polyfill,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50458898/

相关文章:

javascript - javascript 模板字符串中的默认值

python - 扩展 Python 模板字符串

javascript - React - 数组迭代 : "' l' is not defined"error when an array is iterated

javascript - 检查传递的元素是否被 Angular 8 类封装

javascript - 使用 BabelJs 转译时如何忽略一段代码?

javascript - 访问 React 事件的 props

javascript - 在 React Native 中每次按键时键盘都会消失

javascript - 如果我已经运行了 CoffeeLint,那么运行 JSLint 有什么好处吗?

javascript - Promise 模式 - 使用 Promise.all()

javascript - 将字符串转换为模板字符串