почему пустая строка не возвращает boolean?

let perrg ='';
console.log(perrg ?? 'random');
console.log(typeof perrg ?? 'random');

начал учить js, столкнулся с проблемой. почему пустая строка в этом коде возвращает string, если по сути, она эквивалентна false?

let perrg =''; console.log(perrg ?? 'random'); console.log(typeof perrg ?? 'random');


Ответы (2 шт):

Автор решения: Алексей Шиманский

Оператор нулевого слияния (??) это логический оператор, который возвращает значение правого операнда когда значение левого операнда равно null или undefined, в противном случае будет возвращено значение левого операнда.

Пустая строка, как и false это не null и не undefined.

→ Ссылка
Автор решения: Евгений Колмак

В данной ситуации возвращает string потому что Оператор нулевого слияния (??) не приводит значения к булевому типу.

Если левое значение (а это пустая строка '') является null или undefined оно возвращает правое значение (это random). Но пустая строка не равна null или undefined .

let perrg ='';
console.log(perrg ?? 'random');
console.log(typeof perrg ?? 'random');

Возможно вы путаете с Условным оператором "?"

let result = условие ? значение1 : значение2;

Если условие выполняется - значение 1, не выполняется - значение 2.

→ Ссылка