В чем разница между null и undefined?

Рейтинг: 5Ответов: 2Опубликовано: 21.01.2011
В чем разница между null и undefined?

Ответы

▲ 9Принят
  • null - пустое значение (явно присваивается)
  • undefined - неприсвоенное значение (по-умолчанию)

В то же время, null и undefined будут считать равными, напр.:

var x = null;
var y;
if (x == y) {
    // выполнится
}
▲ 3

Отличие Null и Undefined

  1. Вообще появление в JS 2х типов данных обозначения отсутствия значения - это ошибка проектирования языка, и насколько я знаю ни в одном другой языке программирования нет 2х типов обозначающих отсутствие значения.
  2. Undefined задается по умолчанию при объявлении переменной, когда мы еще на задали ей какое-то значение (т.е неопределенное отсутствие значения), а Null мы можем только задать (т.е является определённым значением отсутствия).
  3. Null - в typeof это object, а undefined - это undefined.
  4. JSON - может работать с Null но не может с Undefined.
  5. А еще Null и Undefined при нестрогом сравнении равны друг другу, равны самим себе, и больше ничему. Они являются в логической интерпретации как false, но при сравнении они не равны false.
  6. Использование - обычно undefined не задают, а если он приходит - а мы ожидали какое-то значение, то где-то есть баг. А Null - задают целенаправленно.