Ответ 1
Переменная не может быть одновременно null
и undefined
. Однако прямой ответ на ваш вопрос:
if (variable != null)
Один =
, а не два.
В "абстрактном алгоритме сравнения равенства" в спецификации JavaScript есть два специальных предложения, посвященных случаю одного операнда, который null
, а другой - undefined
, а результат true
для ==
и false
для !=
. Таким образом, если значение переменной undefined
, оно не != null
, и если оно не равно null, это, очевидно, не != null
.
Теперь случай идентификатора, который не определяется вообще, либо как var
, либо let
, как параметр функции или как свойство глобального контекста, различен. Ссылка на такой идентификатор рассматривается как ошибка во время выполнения. Вы можете попробовать ссылку и поймать ошибку:
var isDefined = false;
try {
(variable);
isDefined = true;
}
catch (x) {}
Я лично считаю, что это спорная практика. Для глобальных символов, которые могут быть или могут быть там, в зависимости от наличия или отсутствия какой-либо другой библиотеки или некоторой подобной ситуации, вы можете проверить свойство window
(в браузере JavaScript):
var isJqueryAvailable = window.jQuery != null;
или
var isJqueryAvailable = "jQuery" in window;