if (input == undefined) { ... }
работает просто отлично. Это, конечно, не сравнение null
, но я обычно нахожу, что если мне нужно провести различие между undefined
и null
, мне, скорее, нужно различать undefined
и просто любое ложное значение, поэтому
else if (input) { ... }
делает это.
Если программа переопределяет undefined
, то это действительно мозговая смерть.
Единственная причина, по которой я могу придумать, заключалась в совместимости с IE4, он не понимал ключевое слово undefined
(которое, к сожалению, на самом деле не является ключевым словом), но, конечно, значения могут быть undefined
, так что вы должны были иметь это:
var undefined;
и приведенное выше сравнение будет работать нормально.
Во втором примере вам, вероятно, нужны двойные скобки, чтобы сделать ворс счастливым?