0

如果我有多个点需要使用相同的 if 语句,我可以使用 javascript 变量:

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

5 回答 5

4

绝对地。

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

if (query) {
  //statement true;
}

请注意,这(val!=='CLOSED' || val!=='OFF' || val!=='Off')并没有多大意义。例如,它将评估true为 string 'OFF'

你可能想要!(val == 'CLOSED' || val == 'OFF' || val == 'Off').

于 2013-10-16T15:16:50.057 回答
2

您可以,但您的语法必须正确:

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

注意周围的括号query

于 2013-10-16T15:16:50.197 回答
2

如果变量会改变,您可以使用函数。

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

if (checkVariable(variable)) {}

如果没有,那么只需将语句值分配给变量并再次使用它。

var result = (variable !== 'CLOSED' || variable !== 'OFF' || variable !== 'Off');
if (result) {}
于 2013-10-16T15:16:52.700 回答
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;
}
于 2013-10-16T15:16:34.760 回答
0

是的,你可以,但它总是包含一个在创建查询变量时评估的值。

于 2013-10-16T15:18:13.893 回答