/
Вопросы и ответы
/
JavaScript
/

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

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

год назад

Nikolai Gagarinov

Ответы

0

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

Проверка 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

10 месяцев назад

Ivan Gagarinov