Что означает! () В javascript - PullRequest
       1

Что означает! () В javascript

0 голосов
/ 29 января 2020

Я только что впервые увидел эту конструкцию в javascript

if (someConditionIsMet && !(anotherCondition && oneMoreCondition)) {
  return something
}

Внутри условного оператора if есть! (). Мне интересно, что именно это делает. Это просто способ сгруппировать несколько условий и убедиться, что все они оцениваются определенным образом, прежде чем запускать logi c? Если это так, это просто для упрощения внешнего вида или здесь есть какое-то логическое преимущество?

Ответы [ 3 ]

4 голосов
/ 29 января 2020

Специально для !(anotherCondition && oneMoreCondition) это означает NOT (anotherCondition AND oneMoreCondition).

Это l aws* от Де Моргана *:

not (A and B) = not A or not B

Некоторые могут сказать, что not A or not B легче читать, чем not (A and B), но это личное предпочтение.

Расширение всего условия с использованием закона Де Моргана приведет к:

someConditionIsMet AND (NOT anotherCondition OR NOT oneMoreCondition)

в Javascript:

if (someConditionIsMet && (!anotherCondition || !oneMoreCondition))

Вы можете использовать эту расширенную форму, если считаете, что она более читабельна.

0 голосов
/ 29 января 2020

! () В любом случае javascript означает, что если они НЕ верны. Таким образом, в основном, как в этом случае ...

if(!(anotherCondition && oneMoreCondition)) {
Console.log("If both set to false this would run!");
}

, если для другого параметраConcondition и oneMoreCondition установлено значение false, это фактически вернет значение true. Это может вам помочь: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators#Logical_NOT_!

0 голосов
/ 29 января 2020

Он оценивает условие другого условия && oneMoreCondition, а затем изменяет его.

Так что если условие оценивается как истинное, то! делает условие оцениваемым как ложное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...