Truthy и falsy
Вы уже умеете преобразовывать через String(), Number() и Boolean(). Следующий навык — как значения ведут себя внутри решения, ещё до полного раздела if / else. Те, что работают как «нет», называют falsy. Почти всё остальное — truthy. Выучите короткий список falsy один раз — меньше путаницы потом.
Что такое truthy и falsy в JavaScript?
Falsy значит: в условии JavaScript относится к значению как к false. Truthy — как к true. Это не новый тип — те же числа и строки. Можно посмотреть через Boolean(value) или написать if (value) — правило одно. Новичкам хватает списка falsy; остальное обычно truthy.
Список falsy
📊 Falsy-значения, которые нужно знать
| Значение | Почему «пусто / нет» | Заметка |
|---|---|---|
false |
логическое нет | ключевое слово |
0 |
числовой ноль | также -0 |
"" |
пустая строка | длина 0 |
null |
пусто намеренно | из прошлого урока |
undefined |
значения ещё нет | из прошлого урока |
NaN |
неудачное число | typeof всё ещё "number" |
Этого стартового списка достаточно. Запоминайте falsy, а не бесконечный каталог truthy. Нет в списке — считайте truthy, пока следующий урок не скажет иначе.
Смотрим falsy через Boolean()
Boolean(...) — ясный предпросмотр. Каждый пункт списка становится false.
console.log(Boolean(false));
console.log(Boolean(0));
console.log(Boolean(""));
console.log(Boolean(null));
console.log(Boolean(undefined));
console.log(Boolean(NaN));
Для новичка по умолчанию — truthy
Непустые строки, большинство чисел и сам true — truthy. Первые сюрпризы — часто тексты, которые выглядят как «нет», но содержат символы.
console.log(Boolean(1));
console.log(Boolean(-3));
console.log(Boolean("hi"));
console.log(Boolean("0"));
console.log(Boolean("false"));
console.log(Boolean(" "));
"0" и "false" — truthy, потому что это непустой текст. Один пробел " " тоже truthy — среди обычных строк только "" (длина ноль) является falsy.
if без вызова Boolean()
Простой if (value) использует то же правило. Не нужно писать if (Boolean(value)). Полное ветвление позже; здесь только ворота да/нет.
let name = "Ada";
if (name) {
console.log("name is truthy");
}
let empty = "";
if (empty) {
console.log("will not run");
} else {
console.log("empty string is falsy");
}
Ловушки строк: "0" и "false"
Формы и API часто присылают текст. Строка "0" — не число 0. Строка "false" — не логическое false. Обе truthy.
console.log(Boolean("0"));
console.log(Boolean(0));
console.log(Boolean("false"));
console.log(Boolean(false));
console.log("0" === 0);
Пустая строка против одного пробела
Среди обычных строк только "" с длиной ноль — falsy. Пробел всё ещё содержимое.
console.log(Boolean(""));
console.log(Boolean(" "));
console.log("".length);
console.log(" ".length);
Сообщение на странице по одному значению
Решите, что видит посетитель, одним значением. Измените и обновите страницу.
<!DOCTYPE html>
<html>
<head>
<title>Truthy falsy — page gate</title>
</head>
<body>
<p id="msg">…</p>
<script>
let user = "Sam";
let box = document.getElementById("msg");
if (user) {
box.textContent = "Hello, " + user;
} else {
box.textContent = "Please sign in";
}
</script>
</body>
</html>
Поставьте user в "" или null, обновите — сообщение станет строкой входа. То же правило falsy — уже на странице.
Попробуйте сами
- Выведите
Booleanдля каждого пункта списка falsy. - Выведите
Boolean("0")иBoolean(0)рядом. - Выведите
Boolean(" ")иBoolean("")— пробел против пустого. - Напишите маленький
if (score)сscore = 0, затем сscore = 5. - В HTML-демо поставьте
user = "", обновите и прочитайте сообщение. - Смените
userна"0"— приветствие всё равно сработает (truthy-строка).
Частые ошибки
- Считать
"false"или"0"falsy — это непустые строки - Думать, что всегда нужно оборачивать
Boolean()—if (value)уже приводит - Учить все truthy вместо короткого списка falsy
- Путать число
0(falsy) со строкой"0"(truthy) - Забывать
null,undefinedилиNaNв списке
Кратко
- Falsy: в условии как
false— выучите короткий список - Truthy: как
true— большинство повседневных значений - Предпросмотр через
Boolean(value)или сразуif (value) - Ловушки:
"0"и"false"— truthy - Дальше: операторы — символы для вычислений и сравнений
🧠 Проверьте Свои Знания
Проверьте Свои Знания
Бросьте себе вызов с помощью этой интерактивной викторины и узнайте, насколько хорошо вы понимаете тему
📝 Инструкции
- Внимательно прочитайте каждый вопрос
- Выберите лучший ответ на каждый вопрос
- Вы можете пересдавать тест столько раз, сколько захотите
- Ваш прогресс будет показан вверху