Прежде чем мы обсудим различия, давайте рассмотрим некоторые общие характеристики.

Общие характеристики

  1. Оба являются примитивными типами данных
  2. Оба являются ложными значениями. [Если вы не знаете ложных значений в javascript, просто погуглите]
  3. Оба используются как значение, а также как тип означает [если x является типом «неопределенного», тогда его значение должно быть неопределенным]
  4. Оба используются для переменных, значения которых не существуют. [Интервьюер спросит здесь, в чем разница между ними обоими ч/б]

Ответ нуба из интервью

  • typeof null = ‘object’ [из-за устаревших причин] & typeof undefined = ‘undefined’ 😂

Опытный ответ на собеседовании

  1. Javascript никогда не неявно присваивает нулевое значение какой-либо переменной, но неявно присваивает неопределенное значение, когда обнаруживает, что переменная объявлена, но не инициализирована.
  2. Если мы хотим явно присвоить переменной пустое значение или несуществующее значение, мы должны присвоить ей нулевое значение. Мы можем назначить его неопределенным, но это не имеет никакого смысла.

нулевое значение
примитивное значение, представляющее преднамеренное отсутствие какого-либо значения объекта.

неопределенное значение
примитивное значение, используемое, когда переменной не присвоено значение.