Тип данных null служит для указания отсутствия какого-либо значения у элемента, в то время как значение undefined этому элементу само присвоится при отсутствии такового. Простыми словами, после строки let a; значение a будет undefined, но если мы хотим явно обозначить, что переменная a без значения, то следует записать let a = null;

Несмотря на схожесть своей сущности, эти примитивы имеют некоторые общие и в то же время парадоксально отличные черты. Например:

null == undefined;  // true
null === undefined;  // false

Преобразование специальных типов данных в другие типы будет заключаться всего в одном - проверке условием на наличие самого типа данных. Рассмотрим примеры для преобразований null и undefined в различные типы данных.

Преобразование специальных значений в строку

let a;
if( typeof a === 'undefined' || a === null ){
  a = '';
};
// a = ''

Преобразование специальных значений в число

let a = null;
if( typeof a === 'undefined' || a === null ){
  a = 0;
};
// a = 0

Преобразование специальных значений в булевое

let a;
if( typeof a === 'undefined' || a === null ){
  a = false;
};
// a = false

Преобразование специальных значений в массив

let a = null;
if( typeof a === 'undefined' || a === null ){
  a = [];
};
// a = []

Преобразование специальных значений в объект

let a;
if( typeof a === 'undefined' || a === null ){
  a = {};
};
// a = {}