в чем разница между 'typeof !== undefined' и '!= null' в javascript

Аватар пользователя Ivan Gagarinov
Ivan Gagarinov
27 ноября 2024

Оба варианта служат для проверки состояния переменной, но они имеют отличия:

Проверка typeof !== 'undefined' проверяет, была ли переменная объявлена и инициализирована, и не равна ли она значению undefined.

      if (typeof variable !== 'undefined') {
        // переменная определена
      }

typeof variable возвращает строку 'undefined', если переменная не была объявлена или была объявлена, но не инициализирована. Использование typeof не вызывает ошибки, если переменная не существует. Это важно, если вы не уверены, объявлена ли переменная.

      let a;
      console.log(typeof a !== 'undefined'); // true, a объявлена, но не инициализирована

      console.log(typeof b !== 'undefined'); // false, b не объявлена

Проверка != null проверяет, равно ли значение переменной null или undefined (из-за нестрогого сравнения).

      if (variable != null) {
        // переменная не равна ни null, ни undefined
      }

При использовании нестрогого сравнения (!=), JavaScript приводит оба операнда к одному типу, и проверка вернет false, если значение переменной — null или undefined.

      const c = null;
      console.log(c != null); // false

      const d;
      console.log(d != null); // false, d равно undefined

      const e = 0;
      console.log(e != null); // true, e установлено в 0
0 0
Познакомьтесь с основами JavaScript бесплатно