почему пустая строка не возвращает 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.