Закон непротиворечия гласит, что два противоречащих друг другу утверждения не могут быть истинными одновременно. Это означает, что выражения
(a && !a)
(a == !a)
(a === !a)
всегда должны давать ложное значение, а
(a || !a)
всегда должно оцениваться как истинное значение.
Однако, к счастью, Javascript - забавный язык, который позволяет вам делать ] всякие больные вещи . Я готов поспорить с кем-то на небольшое состояние, что можно убедить Javascript нарушить закон непротиворечия или, по крайней мере, убедительно сделать так, чтобы он выглядел так, как будто он нарушает закон непротиворечивости. Теперь я пытаюсь заставить все четыре приведенных выше примера кода дать неожиданный результат.
Что было бы хорошим способом сделать это?