☕ 5+5=? Преобразование значений в строку или число в JavaScript
В языке JavaScript данные можно преобразовывать автоматически либо с помощью функций. В статье узнаем, как работают способы преобразования данных в JS и почему при сложении 5 и 5 мы можем получить 55 вместо 10.
Разберем пример:
var a = 5; //число var b = "5"; //строка var c = a + b; alert(c);//выведет 55 alert(typeof(c))// выведет string
Когда мы складываем 5
и 5
, то ожидаем увидеть вывод — 10
. Однако, получаем 55
и видим, что тип данных — не число, а строка.
Язык JavaScript автоматически преобразовал переменную a
в строку и соединил ее с переменной b
в одну строку.
Чтобы тип данных был ожидаем для разработчика, используют функции преобразования. Рассмотрим их подробно.
Преобразование в строку в JavaScript
Чтобы преобразовать число в строку используют функцию String()
.
Например:
var a = 5; //число a = String(a);//преобразует переменную а в строку alert(typeof(a));//выведет string
Преобразование в число в JavaScript
Чтобы преобразовать данные в число используют функцию Number()
. Попробуем преобразовать строковое значение 5
в число.
var a = "5";//строка a = Number(a); //преобразует переменную а в число alert(typeof(a));//выведет number
Если вы будете использовать в математических выражениях строки, то JavaScript автоматически преобразует переменные в числа.
Например:
var a = "5"; //строка var b = "5"; //строка var c = a/b; alert(c);//выведет 1, что мы и ожидаем при делении 5 на 5 alert(typeof(c));// выведет number
Логическое преобразование в JavaScript
Для логического преобразования используют функцию Boolean()
.
Данные типа пустая строка
, NaN
, undefined
, null
— преобразуются в false
.
Все остальные данные: числа и строки, преобразуются в true
.
Например:
var a = "null"; alert(Boolean(a));//выведет false
var a = "0"; alert(Boolean(a));//выведет true
var a = " ";//пробел alert(Boolean(a));//выведет true
var a = "";//пусто, без пробелов и других знаков alert(Boolean(a));//выведет false
Подведем итоги
JavaScript может преобразовывать данные автоматически:
- число преобразуются в строки, если их использовать в выражениях со строкой;
- если в строках находятся числа и с ними выполняют математические операции, то они преобразуются в числа.
Для преобразования используют функции:
String()
— преобразует данные в строки.Number()
— преобразует данные в числа.Boolean()
— преобразует данные в логические значения true или false.