2013-10-16 64 views
0

如果我在,我需要使用if語句相同的多個點,我可以使用JavaScript變量:我可以在Javascript中使用'if'查詢的變量嗎?

var query = ((val!=='CLOSED')||(val!=='OFF')||(val!=='Off')); 
if query { 
    //statement true; 
} 
+0

爲什麼不嘗試它而不是問Stack? – Martin

+0

@Martin - 由於該代碼不起作用,可能他們已經並且在詢問是否有一些替代語法可以完成這項工作。 – Quentin

+0

爲什麼不只是將條件緩存在一個變量中,而是使用它代替 –

回答

4

絕對如此。

var query = (val!=='CLOSED' || val!=='OFF' || val!=='Off'); 

if (query) { 
    //statement true; 
} 

注意(val!=='CLOSED' || val!=='OFF' || val!=='Off')並沒有真正有很大的意義。例如,它將針對字符串'OFF'評估爲true。您可能需要!(val == 'CLOSED' || val == 'OFF' || val == 'Off')

+0

謝謝,我想我需要在每個情況下使用該語句,因爲它在each()循環中,所以var尚未設置 – ldmo

0

你可以存儲進行測試和重用的結果(該if聲明確實需要測試被放在括號內雖然):

var result = ((val!=='CLOSED')||(val!=='OFF')||(val!=='Off')); 

if (result) { 
//statement true; 
} 

...但如果val是改變,不會重新評估的聲明。所以每次重複測試都不一樣。

雖然你可以使用一個函數。

var query = function (val) { 
    return ((val!=='CLOSED')||(val!=='OFF')||(val!=='Off')); 
} 

if (query(some_value)) { 
    //statement true; 
} 
+0

...但是'query'是OP代碼中的一個布爾值?我承認起初我也有這種想法。 :) – Tomalak

2

可以,但你的語法必須是正確的:

var query = ((val!=='CLOSED')||(val!=='OFF')||(val!=='Off')); 
if(query) { 
    //statement true; 
} 

通知各地query

2

括號您可以使用函數,如果變量會發生變化。

function checkVariable(variable) { 
    return ((variable !== 'CLOSED') || (variable !== 'OFF') || (variable !== 'Off')); 
} 

if (checkVariable(variable)) {} 

如果不是,那麼只需將語句值賦給變量並再次使用它。

var result = (variable !== 'CLOSED' || variable !== 'OFF' || variable !== 'Off'); 
if (result) {} 
0

是的,你可以,但它總是包含查詢變量創建時評估的值。

相關問題