Подтвердить что ты не робот

Как проверить, является ли переменная равной нулю и/или undefined в JavaScript

Возможный дубликат:
Обнаружение свойства объекта undefined в JavaScript
Как определить, является ли переменная "undefined" или "null"

В моем коде у меня есть условие, которое выглядит как

if (variable !== null && variable !== undefined) {
}

Но вместо того, чтобы делать это в два шага, например, если он не определен и не равен нулю. Есть ли один шаг проверки, который заменяет эту проверку.

4b9b3361

Ответ 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;

Ответ 2

Вы можете обернуть его в свою собственную функцию:

function isNullAndUndef(variable) {

    return (variable !== null && variable !== undefined);
}