The law of non-contradiction dictates that two contradictory statements cannot both be true at the same time. That means that the expressions

(a && !a)
(a == !a)
(a === !a)

should always evaluate to a falsy value, and

(a || !a)

should always evaluate to a truthy value.

Fortunately, though, Javascript is a fun language that allows you to do all sorts of sick things. I bet someone a small fortune that it's possible to convince Javascript to break the law of non-contradiction, or, at least, convincingly make it look like it's breaking the law of non-contradiction. Now I'm trying to make all four of the above code examples give the unexpected result.

What would be a good way to go about this?

Edit
Report