Любое значение, которое делает сравнение JavaScript всегда верным? - PullRequest
2 голосов
/ 02 мая 2011

Есть ли какое-либо значение JavaScript, которое делает сравнение всегда верным?

Пример с оператором ниже, чем:

true < 10           true
false < 10          true
null < 10           true

Пример с оператором больше, чем:

true > 10           false
false > 10          false
null > 10           false

Что я ищу:

alwaysTrue < 10     true
alwaysTrue > 10     true

Я хочу использовать это, чтобы одна часть оператора if по умолчанию возвращала true и true или false при изменении первого значения сравнения.

Это, вероятно, не существует, но я хочу быть полностью уверенным.

Ответы [ 2 ]

5 голосов
/ 02 мая 2011

Возможно, вы захотите использовать «или» в вашем условии с другой переменной, которая может превзойти, возвращает ли она true или нет.

returnTrue || testVariable < 10

Это всегда будет возвращать true, если returnTrue установлено в true, иначеэто будет отступать от сравнения.Если вы просто ищете изменение в переменной, вы можете сделать это, сохранив старое значение.Если вы знаете, что оно никогда не будет нулевым, вы можете проверить это, в противном случае вы можете использовать «или» с флагом, аналогичным приведенному выше.

oldValue === null || currentValue === oldValue
1 голос
/ 02 мая 2011

Я не совсем уверен, если это то, что вы спрашиваете, но это способ сделать это с помощью еще нескольких утверждений:

var rtn = true;

if (oldCompareValue != newCompareValue) {
   // next you'll want to insert your return expression
   // i'm not sure you've specified what this should be
   rtn = (newCompareValue > 10)? true: false;
}

return rtn;

Вы также можете сделать это с помощью оператора AND, как вы просили:

rtn = true;

if ((oldCompareValue != newCompareValue) && true) {
   rtn = (newCompareValue > 10)? true: false;
}

return rtn;

Оператор if делает для нас следующее:

  1. если oldCompareValue совпадает с newCompareValue, тогда весь оператор ложен
  2. если oldCompareValue не совпадает с newCompareValue, тогда весь оператор равен true

В любом случае правая часть тестового выражения всегда оценивается как true, и вы введете if только тогда, когда левая часть также пройдет. Тем не менее, сохранение этой истины для меня кажется чрезмерным.

Как только вы получите свою логику, это может перейти в одну строку.

...