我有一个带有一长串+运算符的变量,它连接了许多不同的变量和字符串。它看起来像这样:
var someVariable = 'this'+ variable1 + 'something' + variable2 + 'somethingElse';
但是我需要在结尾添加另一个变量,它有条件地设置如下:
var conditionalVar;
if (meetCondition) {
conditionalVar = "something";
}
var someVariable = 'this'+ variable1 + 'something' + variable2 + 'somethingElse' + if (typeof conditionalVar !== "undefined") { conditionalVar };
然而,这给了我" Uncaught SyntaxError:意外的令牌,如果"在控制台中。
这有什么解决方案吗?我希望conditionalVar
仅在someVariable
包含值时才会放置。{/ p>
此外,我并不想通过这样做来膨胀代码(我之前有一大堆if语句。
var conditionalVar;
var someVariable;
if (meetCondition) {
conditionalVar = "something";
var someVariable = 'this'+ variable1 + 'something' + variable2 + 'somethingElse' + conditionalVar;
} else {
conditionalVar = "something";
var someVariable = 'this'+ variable1 + 'something' + variable2 + 'somethingElse';
}
答案 0 :(得分:4)
您可以使用条件运算符
更改此条件var someVariable = 'this'+ variable1 + 'something' + variable2 + 'somethingElse' + ((typeof conditionalVar !== "undefined")? conditionalVar :'');
答案 1 :(得分:2)
var someVariable = 'this'+ variable1 + 'something' + variable2 + 'somethingElse' + (conditionalVar ? conditionalVar : "");
<强> Demo 强>
答案 2 :(得分:1)
在该语句中使用三元运算符而不是if
,if
作为其他语句的一部分在javascript中无效(但可能在其他语言中有效,如Python)
var name='John';
var greet = "Hello ," + (( typeof(name) == "undefined" ) ? "User" : name) ;
// greet is now "Hello , John"
答案 3 :(得分:1)
使用三元运算或真正的if语句。
var someVariable = 'foobar' + ((typeof conditionalVar !== "undefined") ? conditionalVar : '');
或
if(typeof conditionalVar !== "undefined") {
someVariable += conditionalVar;
}
答案 4 :(得分:0)
试试这个......
var conditionalVar;
var someVariable = 'this'+ variable1 + 'something' + variable2 + 'somethingElse';
if (meetCondition) {
conditionalVar = "something";
someVariable += conditionalVar ;
}
答案 5 :(得分:0)
鉴于 conditionVar 的值取决于条件,那么该条件应与conditional operator一起使用:
... + (meetCondition? something : '');
完全不需要 conditionVar 。