Итак, младший программист в моей команде сегодня написал следующий фрагмент кода:
if(status === ("incomplete" || "unknown"))
Это, очевидно, не будет делать то, что он намеревался, что и было:
if(status === "incomplete" || status === "unknown"))
Но я не могу объяснить, почему именно первый фрагмент кода не сработает! Или почему он оценивает значение true, если для параметра "status" установлено значение "неполное", но false, когда оно установлено на "неизвестно"...