可以在javascript字符串插值中执行三元表达式吗?
我有一个变量:可以在javascript字符串插值中执行三元表达式吗?,javascript,jquery,interpolation,Javascript,Jquery,Interpolation,我有一个变量: var foobar = "Hi, my name is #{name}"; 但若页面加载时未定义名称。。我希望它能保存“未知” 但是写这样的东西: var foobar = "Hi, my name is #{typeof name === 'undefined' ? 'unknown' : name}"; 仍然返回错误,未知变量名只需将名称放入其中。如果未定义或为空,则为“false” 把名字写进去就行了。如果未定义或为空,则为“false” 与其在字符串构造中进行逻辑决
var foobar = "Hi, my name is #{name}";
但若页面加载时未定义名称。。我希望它能保存“未知”
但是写这样的东西:
var foobar = "Hi, my name is #{typeof name === 'undefined' ? 'unknown' : name}";
仍然返回错误,
未知变量名
只需将名称放入其中。如果未定义或为空,则为“false”
把名字写进去就行了。如果未定义或为空,则为“false”
与其在字符串构造中进行逻辑决策,不如在外部进行,以获得更好的性能和(远)更可读的代码:
name=name | |“未知”代码>不要在字符串构造中进行逻辑决策,而是在外部进行,以获得更好的性能和(远)更可读的代码:
name=name | |“未知”代码>我认为更好的方法是:
var name = name || "Unknown";
var foobar = 'Hi my name is ' + name;
我认为更好的方法是:
var name = name || "Unknown";
var foobar = 'Hi my name is ' + name;
这是使用的模板语言,语法是什么?“嗨,我的名字是#{name}”
?@RocketHazmat我想这是一个Ruby的东西。这是我唯一见过这种特定语法的地方。@Trip,请指定使用的模板语言。否则,你的问题就不会有好的答案。@RocketHazmat确实!让我们更加困惑,嗯?:)这是使用的模板语言,语法是什么?“嗨,我的名字是#{name}”
?@RocketHazmat我想这是一个Ruby的东西。这是我唯一见过这种特定语法的地方。@Trip,请指定使用的模板语言。否则,你的问题就不会有好的答案。@RocketHazmat确实!让我们更加困惑,嗯?:)你在这里用什么语法?不知道。我遵循OP使用的语法。如果他的代码能够尝试读取#{}中的内容(返回的名称未定义),那么他的问题应该只是让内部的三元正确工作,这就是问题的关键。如果他的模板不支持该语法,并且试图将表达式作为变量名读取,该怎么办^_^那么问题的重点就没有意义了,需要一个不同的解决方案。但是我对这个问题进行了字面解释,这似乎是这里的规则。我想也许你知道他使用的引擎:-p你在这里使用什么语法?不知道。我遵循OP使用的语法。如果他的代码能够尝试读取#{}中的内容(返回的名称未定义),那么他的问题应该只是让内部的三元正确工作,这就是问题的关键。如果他的模板不支持该语法,并且试图将表达式作为变量名读取,该怎么办^_^那么问题的重点就没有意义了,需要一个不同的解决方案。但我对这个问题的字面解释似乎是这里的规则。我想也许你知道他使用的引擎:-P@f00bar当然,一艘班轮。但是,如果您必须进行任何严肃的客户端模板制作,这就没有抓住要点。同意@Mathletics。我还喜欢通过结合javascript的类型独立性来缩短三元操作的需要。@f00bar当然,对于一行程序。但是,如果您必须进行任何严肃的客户端模板制作,这就没有抓住要点。同意@Mathletics。我还喜欢通过结合javascript的类型独立性来缩短对三元操作的需求。