JavaRush /Курсы /Модуль 1: Web Core /Преобразование типов в JavaScript

Преобразование типов в JavaScript

Модуль 1: Web Core
18 уровень , 0 лекция
Открыта

1.1 Явное преобразование типов

Преобразование типов в JavaScript — это процесс преобразования значения из одного типа данных в другой. Существует два типа преобразования: явное (ручное) и неявное (автоматическое). Понимание этих процессов важно для предотвращения ошибок и создания предсказуемого кода.

Явное преобразование, также известное как ручное преобразование, выполняется с использованием встроенных функций и методов JavaScript. Это преобразование, при котором программист явно указывает, какой тип данных должен быть преобразован в другой тип.

Основные методы явного преобразования:

1. Преобразование в строку

  • Метод String(value): преобразует значение в строку
JavaScript
    
      let num = 123;
      let str = String(num);
      console.log(typeof str); // "string"
    
  

  • value.toString(): метод объекта, который преобразует значение в строку
JavaScript
    
      let bool = true;
      let str = bool.toString();
      console.log(typeof str); // "string"
    
  

2. Преобразование в число

  • Number(value): преобразует значение в число
JavaScript
    
      let str = "456";
      let num = Number(str);
      console.log(typeof num); // "number"
    
  

  • parseInt(value, base): преобразует строку в целое число. Параметр base указывает основание системы счисления
JavaScript
    
      let str = "123";
      let num = parseInt(str, 10);
      console.log(typeof num); // "number"
    
  

  • parseFloat(value): преобразует строку в число с плавающей точкой
JavaScript
    
      let str = "123.45";
      let num = parseFloat(str);
      console.log(typeof num); // "number"
    
  

3. Преобразование в булево значение

  • Boolean(value): преобразует значение в булево
JavaScript
    
      let str = "";
      let bool = Boolean(str);
      console.log(typeof bool); // "boolean"
    
  

1.2 Неявное преобразование типов

Неявное преобразование, также известное как автоматическое или скрытое преобразование, выполняется JavaScript автоматически при выполнении операций с различными типами данных. Неявное преобразование может привести к неожиданным результатам, поэтому его нужно понимать и использовать с осторожностью.

1. Преобразование в строку

Важно!

При сложении любого объекта со строкой JavaScript попробует преобразовать его в строку.

Пример:

JavaScript
    
      let result = "The number is " + 123;
      console.log(result); // "The number is 123"
    
  

2. Преобразование в число

Важно!

При использовании любых арифметических операторов (кроме +) со строками, содержащими числа.

JavaScript
    
      let result = "123" - 0;
      console.log(result); // 123 (число)
    
  

Как это работает на практике:

JavaScript
    
      let result = "123" - 10;
      console.log(result); // 113 (число)

      let result2 = "123" + 10;
      console.log(result2); // 12310 (строка)
    
  

3. Преобразование в булево значение

При использовании значений в логических контекстах (условные операторы, циклы и т. д.).

JavaScript
    
      let value = "hello";

      if (value) {
        console.log("Value is truthy");   // Вывод: "Value is truthy"
      }
    
  

Примеры преобразований в логическом контексте:

  • false, 0, "" (пустая строка), null, undefined, и NaN считаются ложными (false) значениями
  • Все остальные значения считаются истинными (true)
JavaScript
    
      if ("") {
        console.log("This won't be logged.");
      } else {
        console.log('"" is considered false in a boolean context.');
      }

      // '"" is considered false in a boolean context.'
    
  

1.3 Примеры неявного преобразования

Пример с арифметическими операциями:

JavaScript
    
      let width = "100";
      let height = "200";

      let area = Number(width) * Number(height); // Явное преобразование
      console.log(area); // 20000

      let perimeter = (+width) + (+height); // Использование унарного плюса для явного преобразования
      console.log(perimeter); // 300
    
  

Пример с логическим контекстом:

JavaScript
    
      let userInput = ""; // Пустая строка

      if (!userInput) {
        console.log("Пользователь не ввел данные."); // Неявное преобразование строки в булевое значение
      }
    
  

Пример с комбинированными типами:

JavaScript
    
      let value = "10";
      let increment = 5;

      let result = value + increment; // Неявное преобразование числа в строку
      console.log(result); // "105"

      result = Number(value) + increment; // Явное преобразование строки в число
      console.log(result); // 15
    
  
1
Задача
Модуль 1: Web Core, 18 уровень, 0 лекция
Недоступна
Преобразование строки
Преобразование строки
1
Задача
Модуль 1: Web Core, 18 уровень, 0 лекция
Недоступна
Неявное сложение
Неявное сложение
Комментарии (5)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Vadim Makarenko Уровень 42
15 июля 2025
1. Зачем давать пример на явное преобразование типов, если в заголовке раздела 1.3 говорится о неявном? Тогда уж вычисляйте площадь без использования ф-и Number(). Перемножение строк как раз и даст число. 2. С каких пор периметр - это сумма ширины и высоты? У какой фигуры? Вот если бы вычисление было сделано по формуле 2 * weight + 2 * height, оно бы соответствовало прямоугольнику и иллюстрировало, опять же, неявное преобразование типов.
RayCowperwood Уровень 48
28 мая 2025
во второй задаче можно использовать унарный плюс

let result = num + +str;
Александр Уровень 47
16 декабря 2024
Важно! При использовании любых арифметических операторов (кроме +) со строками, содержащими числа. Что важно-то?
Darja Уровень 49
15 апреля 2025
ChatGPT помог) 📌 Что имелось в виду: Когда ты используешь арифметические операторы (например -, *, /) со строками, которые содержат числа — JavaScript автоматически преобразует строки в числа. Но! Это не работает с оператором +, потому что + — это ещё и для склеивания строк. ✨ Примеры: "10" - "2" // 8 → строки преобразуются в числа "5" * "3" // 15 → тоже преобразуются "20" / "2" // 10 → работает "10" + "2" // "102" ❗ → это строка, просто склеились! 🔥 Почему так? Оператор + может складывать числа или склеивать строки. JavaScript не всегда может понять, что ты хочешь, поэтому он выбирает строку. А вот -, *, / только для математики, поэтому JS считает, что ты точно хочешь числа. ✅ Запомни простое правило: Оператор Результат с "числами в строке" + ❌ Склеивание строк -, *, / ✅ Автоматическое преобразование в числа
Ислам Уровень 18
8 декабря 2024
оч странный порядок лекций