Проверяет понимание приведения значений null, undefined и NaN к булевому типу в JavaScript.
В JavaScript существует концепция falsy значений — это значения, которые при приведении к булевому типу становятся false. К ним относятся: false, 0, '' (пустая строка), null, undefined и NaN. Все три рассматриваемых значения — null, undefined и NaN — являются falsy, поэтому в логическом контексте они ведут себя одинаково.
Рассмотрим простой пример с условной конструкцией:
let a = null;
let b = undefined;
let c = NaN;
if (a) {
console.log('null is truthy');
} else {
console.log('null is falsy'); // Выполнится
}
if (b) {
console.log('undefined is truthy');
} else {
console.log('undefined is falsy'); // Выполнится
}
if (c) {
console.log('NaN is truthy');
} else {
console.log('NaN is falsy'); // Выполнится
}Во всех трёх случаях код войдёт в блок else, так как каждое из значений приводится к false.
Несмотря на то, что NaN ведёт себя как falsy, у него есть уникальная особенность: он не равен самому себе. Это можно проверить:
console.log(NaN === NaN); // falseЭто отличает NaN от null и undefined, которые равны сами себе (null === null и undefined === undefined). Для проверки на NaN рекомендуется использовать функцию Number.isNaN().
Понимание falsy значений важно при написании условных конструкций и проверок. Например, если вы хотите проверить, определена ли переменная, можно использовать if (variable), но нужно помнить, что это не сработает для значений 0 или пустой строки, так как они тоже falsy. В таких случаях лучше использовать строгие проверки на null или undefined.
null, undefined и NaN все являются falsy, поэтому в булевом контексте они преобразуются в false. Однако NaN имеет дополнительную особенность — он не равен самому себе, что требует осторожности при проверках. Используйте эти знания для написания надёжных условий в JavaScript.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию