Как я могу нарушить закон непротиворечивости в Javascript?

Закон непротиворечия гласит, что два противоречащих друг другу утверждения не могут быть истинными одновременно. Это означает, что выражения

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

всегда должны давать ложное значение, а

(a || !a)

всегда должно оцениваться как истинное значение.

Однако, к счастью, Javascript - забавный язык, который позволяет вам делать ] всякие больные вещи . Я готов поспорить с кем-то на небольшое состояние, что можно убедить Javascript нарушить закон непротиворечия или, по крайней мере, убедительно сделать так, чтобы он выглядел так, как будто он нарушает закон непротиворечивости. Теперь я пытаюсь заставить все четыре приведенных выше примера кода дать неожиданный результат.

Что было бы хорошим способом сделать это?

12
задан Community 23 May 2017 в 11:53
поделиться