JavaScript" + if"内部变量

时间:2014-06-14 12:30:29

标签: javascript

我有一个带有一长串+运算符的变量,它连接了许多不同的变量和字符串。它看起来像这样:

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';
     }

6 个答案:

答案 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)

在该语句中使用三元运算符而不是ifif作为其他语句的一部分在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