【问题标题】:Check if a string is a template literal in JavaScript检查字符串是否是 JavaScript 中的模板文字
【发布时间】:2017-12-26 18:34:28
【问题描述】:

是否可以测试字符串是否为template literal

类似:

const x = "foo"
const y = `${x}bar`  // "foobar"

isTemplateLiteral(x) // false
isTemplateLiteral(y) // true

【问题讨论】:

  • 不,这是不可能的。您可能得到的最接近的方法是将此代码包装到一个函数中,然后解析其源代码(可通过 toString()-ing 获得)。不过,它闻起来像 XY 问题。
  • 最好询问字符串是否模板字面量构成,因为xy 始终是字符串。

标签: javascript string syntax template-literals


【解决方案1】:

模板文字只是一种语法/javascript结构,而不是语言中的一种新类型的对象。 模板文字的值是在处理器越过代码行并且返回的值是字符串时生成的,因此 - 您无法检查该值是由字符串文字还是由常规字符串生成的。

顺便说一句,如果您使用 babel 并且希望输出是有效的 ES5 - 字符串文字将被转换为某种字符串连接(var y = x + 'bar')。

【讨论】:

    猜你喜欢
    • 2017-10-30
    • 2014-09-10
    • 2011-05-02
    • 2023-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-30
    相关资源
    最近更新 更多