Не используйте undefined
для проверки неопределенной переменной, используйте вместо этого оператор typeof!
undefined
не является ключевым словом javascript, это просто имя переменной. Если кто-то пишет var undefined = true
глобально в любом месте кода, все ваши сравнения будут действовать неожиданно.
Вам следует рассмотреть возможность использования чего-то типа JSLINT или JSHINT, чтобы избежать подобных ошибок в вашем javascript-коде.
Кроме того, я всегда буду писать сравниваемый параметр во-первых, так как я его читаю. Вот почему If the variable foo is undefined than
должен быть записан как if (typeof foo === "undefined")
Я не помню названия для этой модели, но я совершенно уверен, что есть один :)
Все одинаковы. Если вы хотите проверить, не была ли указана переменная, используйте «variable === undefined». Если вы хотите проверить, содержит ли переменная данные, используйте «if (variable)». Это то же самое, что «if (variable! == undefined && variable! == null)». Вы всегда должны использовать === вместо ==. С помощью == вы неявно выполняете преобразование типа, например. 1 == "1" = true, 1 === "1" = false. –