JavaScript解析带引号的变量

3

可能是重复问题:
JavaScript Variable inside string without concatenation - like PHP

在PHP中,双引号有能力读取变量,例如:

"$foo"

但是在JavaScript中,你必须始终使用+来读取变量,这样当变量被读取时,它不会在引号内部,例如:

var foo='bar';
alert("The name's "+foo);

那么,是否有任何绕过或方法可以做到这一点?始终使用+是相当麻烦的。


2
警告(["名字是 ", foo].join('')); ;) - Yoshi
1
请查看以下问题:https://dev59.com/XHM_5IYBdhLWcg3wXx5N - xdazz
@xdazz 显然做那个会更麻烦哈哈 - siaooo
@FelixKling 噢,我会删除这个问题的。 - siaooo
@FelixKling 看起来我做不到 :\ - siaooo
哦,好吧...没关系,我只会选择一个答案 ;) - siaooo
2个回答

2

不可能在JavaScript中实现这个功能。

在JavaScript中,当变量放在单引号或双引号中时,会被转换为字符串,无法解析。在JavaScript中引号内的所有内容都被视为字符串

即使你编写自定义解析器,也没有办法确定引号中的内容是变量还是字符串,因为名为name的变量也可能出现在字符串中,从而创建命名冲突。


1

不,没有变通方法,那就是它的本来面目。

Javascript不提供“字符串插值”。

个人偏爱Ildar Shaimordanov的String.js模块,该模块为字符串对象添加了一个sprintf方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接