1.1 Явное преобразование типов
Преобразование типов в JavaScript — это процесс преобразования значения из одного типа данных в другой. Существует два типа преобразования: явное (ручное) и неявное (автоматическое). Понимание этих процессов важно для предотвращения ошибок и создания предсказуемого кода.
Явное преобразование, также известное как ручное преобразование, выполняется с использованием встроенных функций и методов JavaScript. Это преобразование, при котором программист явно указывает, какой тип данных должен быть преобразован в другой тип.
Основные методы явного преобразования:
1. Преобразование в строку
- Метод
String(value): преобразует значение в строку
let num = 123;
let str = String(num);
console.log(typeof str); // "string"
value.toString(): метод объекта, который преобразует значение в строку
let bool = true;
let str = bool.toString();
console.log(typeof str); // "string"
2. Преобразование в число
Number(value): преобразует значение в число
let str = "456";
let num = Number(str);
console.log(typeof num); // "number"
parseInt(value, base): преобразует строку в целое число. Параметрbaseуказывает основание системы счисления
let str = "123";
let num = parseInt(str, 10);
console.log(typeof num); // "number"
parseFloat(value): преобразует строку в число с плавающей точкой
let str = "123.45";
let num = parseFloat(str);
console.log(typeof num); // "number"
3. Преобразование в булево значение
Boolean(value): преобразует значение в булево
let str = "";
let bool = Boolean(str);
console.log(typeof bool); // "boolean"
1.2 Неявное преобразование типов
Неявное преобразование, также известное как автоматическое или скрытое преобразование, выполняется JavaScript автоматически при выполнении операций с различными типами данных. Неявное преобразование может привести к неожиданным результатам, поэтому его нужно понимать и использовать с осторожностью.
1. Преобразование в строку
При сложении любого объекта со строкой JavaScript попробует преобразовать его в строку.
Пример:
let result = "The number is " + 123;
console.log(result); // "The number is 123"
2. Преобразование в число
При использовании любых арифметических операторов (кроме +) со строками, содержащими числа.
let result = "123" - 0;
console.log(result); // 123 (число)
Как это работает на практике:
let result = "123" - 10;
console.log(result); // 113 (число)
let result2 = "123" + 10;
console.log(result2); // 12310 (строка)
3. Преобразование в булево значение
При использовании значений в логических контекстах (условные операторы, циклы и т. д.).
let value = "hello";
if (value) {
console.log("Value is truthy"); // Вывод: "Value is truthy"
}
Примеры преобразований в логическом контексте:
false,0,""(пустая строка),null,undefined, иNaNсчитаются ложными (false) значениями- Все остальные значения считаются истинными (
true)
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 Примеры неявного преобразования
Пример с арифметическими операциями:
let width = "100";
let height = "200";
let area = Number(width) * Number(height); // Явное преобразование
console.log(area); // 20000
let perimeter = (+width) + (+height); // Использование унарного плюса для явного преобразования
console.log(perimeter); // 300
Пример с логическим контекстом:
let userInput = ""; // Пустая строка
if (!userInput) {
console.log("Пользователь не ввел данные."); // Неявное преобразование строки в булевое значение
}
Пример с комбинированными типами:
let value = "10";
let increment = 5;
let result = value + increment; // Неявное преобразование числа в строку
console.log(result); // "105"
result = Number(value) + increment; // Явное преобразование строки в число
console.log(result); // 15
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ