Преобразование типов
Вы уже различаете null и undefined. Дальше — намеренно менять тип значения: число в текст для подписи, текст в число для счёта. Это преобразование типов. Здесь три явных помощника: String(), Number() и Boolean() — плюс частый сюрприз с +.
Что такое преобразование типов в JavaScript?
Преобразование типов — перевод значения из одного вида в другой. Лучше явно: String(42) даёт "42", Number("7") — 7, Boolean(0) — false. Если Number не понимает текст, получается NaN. При +, если с одной стороны строка, часто идёт склейка текста, а не сложение — залогируйте один раз.
Набор инструментов преобразования
📊 Преобразование типов для начинающих
| Помощник / идея | Пример | Результат / заметка |
|---|---|---|
String(...) |
String(42) |
"42" (текст) |
Number(...) |
Number("7") |
7 (число) |
Boolean(...) |
Boolean(0) |
false (превью falsy) |
| Нечисловой текст | Number("hello") |
NaN — typeof всё ещё "number" |
| Пустое → boolean | Boolean("") |
false |
Смесь с + |
5 + "2" |
"52" (конкатенация, не 7) |
String() — сделать текст
Нужна подпись или сообщение — оберните значение в String(...). Числа, булевы, null и undefined становятся строками.
console.log(String(42));
console.log(String(true));
console.log(String(null));
console.log(String(undefined));
console.log(typeof String(42));
Number() — сделать число
Когда текст нужен для арифметики, используйте Number(...). Строки из цифр преобразуются чисто. Нечисловой текст даёт NaN.
console.log(Number("7"));
console.log(Number("3.5"));
console.log(Number(true));
console.log(Number(false));
console.log(typeof Number("7"));
Когда Number не срабатывает — NaN
Number("hello") — это NaN. Из урока про числа: typeof NaN всё ещё "number". Считайте NaN неудачным преобразованием, а не полезной величиной.
console.log(Number("hello"));
console.log(typeof Number("hello"));
console.log(Number(""));
console.log(Number(null));
Number("") и Number(null) дают 0 — ещё одна ловушка. Для реальной суммы давайте явную цифровую строку.
Boolean() — да/нет из значения
Boolean(...) превращает значение в true или false. Пустые вроде 0, "", null, undefined и NaN становятся false. Непустые строки и большинство чисел — true. Полный список truthy / falsy — в следующем уроке; здесь достаточно помощника.
console.log(Boolean(1));
console.log(Boolean(0));
console.log(Boolean("hi"));
console.log(Boolean(""));
console.log(Boolean(null));
Сюрприз + — склейка или сложение
Если один операнд + — строка, JavaScript часто склеивает текст. Для математики сначала преобразуйте через Number().
console.log(5 + 2);
console.log(5 + "2");
console.log(Number("5") + Number("2"));
console.log("Score: " + 10);
Показать преобразования на странице
Преобразуйте несколько значений и запишите короткие подписи через textContent.
<!DOCTYPE html>
<html>
<head>
<title>Type conversion — labels</title>
</head>
<body>
<p id="out">…</p>
<script>
let raw = "12";
let asNumber = Number(raw);
let asText = String(asNumber);
let flag = Boolean(asNumber);
document.getElementById("out").textContent =
"raw=" + raw +
" | number=" + asNumber +
" | text=" + asText +
" | flag=" + flag;
</script>
</body>
</html>
Абзац показывает одну идею в трёх видах. Поставьте raw в "0", обновите страницу: flag станет false, а число останется 0.
Попробуйте сами
- Залогируйте
String(99),String(false)иtypeof String(99). - Залогируйте
Number("8")иNumber("8") + 2— арифметика, не"82". - Залогируйте
Number("oops")иtypeof(NaN, всё ещё"number"). - Залогируйте
Boolean("")иBoolean("ok"). - Залогируйте
3 + "4", затем перепишите черезNumber("3") + Number("4"). - В HTML-демо
raw="0", обновите и прочитайте новыйflag.
Частые ошибки
- Думать, что
+всегда складывает — строка может склеить - Игнорировать
NaNпослеNumber("hello")и считать дальше - Считать, что этот урок заменяет truthy / falsy —
Boolean()лишь превью - Ожидать, что
String(null)— это""; на деле текст"null" - Забывать
typeof, когда результат странный
Кратко
- Преобразование типов: намеренно менять вид значения
- Для ясности предпочитайте
String(),Number(),Boolean() - Нечисловой текст →
NaN;typeof NaNвсё ещё"number" +со строкой часто склеивает — преобразуйте перед сложением- Дальше: truthy и falsy — какие значения в условиях ведут себя как true или false
🧠 Проверьте Свои Знания
Проверьте Свои Знания
Бросьте себе вызов с помощью этой интерактивной викторины и узнайте, насколько хорошо вы понимаете тему
📝 Инструкции
- Внимательно прочитайте каждый вопрос
- Выберите лучший ответ на каждый вопрос
- Вы можете пересдавать тест столько раз, сколько захотите
- Ваш прогресс будет показан вверху