2014-06-14 83 views
2

我有一個變量,它有一個連接許多不同變量和字符串的+運算符的長鏈。它看起來是這樣的:變量裏面的JavaScript「+ if」

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

但是這給了我「未捕獲的SyntaxError:意外的標記,如果」在控制檯。

有沒有解決方法?我只想將conditionalVar置於someVariable中,前提是它包含一個值。

此外,我真的不希望做這個(我有,如果事先聲明給它的負載臃腫的代碼。

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

而不是使用if,使用條件語句如:var someVariable =「a」+(conditionalVar?conditionalVar:「」); –

回答

4

你可以改變這種狀況與條件運算

var someVariable = 'this'+ variable1 + 'something' + variable2 + 'somethingElse' + ((typeof conditionalVar !== "undefined")? conditionalVar :''); 
+0

爲什麼不''... conditionVar === undefined? conditionVar:'''? – RobG

1

使用三元運算符,而不是if在該聲明中,if作爲其他語句的一部分是無效的JavaScript(但像Python語言可能是有效的)

var name='John'; 
var greet = "Hello ," + ((typeof(name) == "undefined") ? "User" : name) ; 
    // greet is now "Hello , John" 
2
var someVariable = 'this'+ variable1 + 'something' + variable2 + 'somethingElse' + (conditionalVar ? conditionalVar : ""); 

Demo

0

嘗試......

var conditionalVar; 



var someVariable = 'this'+ variable1 + 'something' + variable2 + 'somethingElse'; 

if (meetCondition) { 
    conditionalVar = "something"; 
    someVariable += conditionalVar ; 
} 
1

使用三元操作或真正的if語句。

var someVariable = 'foobar' + ((typeof conditionalVar !== "undefined") ? conditionalVar : ''); 

if(typeof conditionalVar !== "undefined") { 
    someVariable += conditionalVar; 
} 
0

鑑於conditionVar的值是依賴於條件,則條件應與所述conditional operator使用:

... + (meetCondition? something : ''); 

它不需要爲conditionVar完全。