如何区分普通引用字符串和模板文字(反引号)
How to distinguish plain quoted string and template literal(backtick)
结果相同,能力不同。有什么方法可以在它们之间进行识别,以便我可以限制(函数的)用户仅使用模板文字作为参数吗?
不,不是真的...就像你无法真正区分 5
和 4 + 1
。
你的意思是像虚构的 isFromTemplateLitteral
布尔值?
function(string){
if(string.isFromTemplateLitteral()){
// console.log("YES!")
}
}
没办法。
因为字符串是使用内存堆栈中的引用传递给函数的。所以即使在函数体开始 运行 之前, string
已经是一个 normal 字符串。 字符串类型的基元。
无法知道它是如何构建的(模板文字、连接、simple/double 引号等)或它的真正来源(用户输入、硬编码文本、正则表达式匹配等) ).
结果相同,能力不同。有什么方法可以在它们之间进行识别,以便我可以限制(函数的)用户仅使用模板文字作为参数吗?
不,不是真的...就像你无法真正区分 5
和 4 + 1
。
你的意思是像虚构的 isFromTemplateLitteral
布尔值?
function(string){
if(string.isFromTemplateLitteral()){
// console.log("YES!")
}
}
没办法。
因为字符串是使用内存堆栈中的引用传递给函数的。所以即使在函数体开始 运行 之前, string
已经是一个 normal 字符串。 字符串类型的基元。
无法知道它是如何构建的(模板文字、连接、simple/double 引号等)或它的真正来源(用户输入、硬编码文本、正则表达式匹配等) ).