from Hacker News

The curious case of if-not

by jugjug on 1/21/21, 8:49 PM with 2 comments

  • by baumandm on 1/21/21, 9:00 PM

    The two if statements given aren't logically equivalent; an equivalent version of the 2nd one would be:

      if (!(input.command === "foo" && isValid(input))) {
        ...
      }
    
    Which IMHO is the least comprehensible.

    You can flip the negation by swapping the if/else blocks, but only if there is an else. Then you also get into questions about whether or not it matters which block is on top.