javascript - !() 在 JavaScript 中是什么意思

标签 javascript if-statement ecmascript-6

我刚刚在 javascript 中第一次看到这个结构

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

if 条件语句中有一个 !()。我想知道那到底是做什么的。它只是将多个条件组合在一起并确保它们在触发逻辑之前都以某种方式进行评估的一种方法吗?如果是这样,这仅仅是为了简化外观还是有一些逻辑优势?

最佳答案

特别是对于!(anotherCondition && oneMoreCondition),它的意思是NOT (anotherCondition AND oneMoreCondition)

这是De Morgan's laws :

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

有些人可能会说not A or not Bnot (A and B)更容易阅读,但这是个人喜好。

使用德摩根定律扩展整个条件将导致:

someConditionIsMet AND (NOT anotherCondition OR NOT oneMoreCondition)

在 JavaScript 中:

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

如果您认为扩展形式更具可读性,则可以使用它。

关于javascript - !() 在 JavaScript 中是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59959046/

相关文章:

javascript - 如何使用 ES6 在 javascript 中删除或添加项目到锯齿状数组?

javascript - Selenium 没有捕获 JavaScript 错误

javascript - 使用 jasmine/karma、spyOn 进行 Angular 组件测试

javascript - javascript (if) 语句帮助

iphone - iOS:if-else 在 stringwithformat 中

javascript - 在 React 中使用 Array.Map() 返回子数组

javascript - 如何获取addEventListener里面的值?

javascript - 如何在 javascript 中将这两个数组组合成一个 3d 数组

MySQL - IF/THEN 语句确定 INSERT INTO

javascript - 这个 IIFE switch 语句是否会导致不必要的开销?