JavaScript: преобразование значений в строку или число | OTUS
🔥 BLACK FRIDAY!
Максимальная скидка -25% на всё. Успейте начать обучение по самой выгодной цене.
Выбрать курс

Курсы

Программирование
iOS Developer. Basic
-25%
Python Developer. Professional
-25%
Разработчик на Spring Framework
-25%
Golang Developer. Professional
-25%
Python Developer. Basic
-25%
iOS Developer. Professional
-25%
Highload Architect
-25%
JavaScript Developer. Basic
-25%
Kotlin Backend Developer
-25%
JavaScript Developer. Professional
-25%
Android Developer. Basic
-25%
Unity Game Developer. Basic
-25%
Разработчик C#
-25%
Программист С Web-разработчик на Python Алгоритмы и структуры данных Framework Laravel PostgreSQL Reverse-Engineering. Professional CI/CD Vue.js разработчик VOIP инженер Программист 1С Flutter Mobile Developer Супер - интенсив по Kubernetes Symfony Framework Advanced Fullstack JavaScript developer Супер-интенсив "Azure для разработчиков"
Инфраструктура
Мониторинг и логирование: Zabbix, Prometheus, ELK
-25%
DevOps практики и инструменты
-25%
Архитектор сетей
-25%
Инфраструктурная платформа на основе Kubernetes
-25%
Супер-интенсив «IaC Ansible»
-16%
Разработчик программных роботов (RPA) на базе UiPath и PIX
-25%
Супер-интенсив "SQL для анализа данных"
-16%
Базы данных Сетевой инженер AWS для разработчиков Cloud Solution Architecture Разработчик голосовых ассистентов и чат-ботов Внедрение и работа в DevSecOps Администратор Linux. Виртуализация и кластеризация Нереляционные базы данных Супер-практикум по использованию и настройке GIT IoT-разработчик Супер-интенсив «ELK»
Специализации Курсы в разработке Подготовительные курсы
+7 499 938-92-02

JavaScript: преобразование значений в строку или число

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

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

Если мы хотим что-либо представить в виде строки, речь идёт о строковом преобразовании.

К примеру, значение к строке преобразует alert(value). Также для преобразования в строку подходит функция String(value):

let value = true;
alert(typeof value); // boolean

value = String(value); // теперь value — это строка "true"
alert(typeof value); // string

В данном случае преобразование в JavaScript выполняется очевидным способом, ведь false становится "false", а null становится "null" и так далее.

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

Преобразование в число (численное преобразование) осуществляется в математических функциях и выражениях. Допустим, когда операция деления (/) применяется не к числу:

alert( "6" / "2" ); // 3, Строки преобразовываются в числа

Кроме того, можно задействовать функцию Number(value) — это позволит явно преобразовать value к числу:

let str = "123";
alert(typeof str); // string

let num = Number(str); // станет числом 123

alert(typeof num); // number

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

Когда строка не может быть приведена к числу явно, результатом преобразования станет NaN:

let age = Number("Любая строка вместо числа");

alert(age); // NaN, преобразование  не получилось

Существуют правила преобразования в число:

1-20219-a49f75.png

А теперь приведём примеры:

alert( Number("   123   ") ); // 123
alert( Number("123z") );      // NaN (ошибка чтения числа в "z")
alert( Number(true) );        // 1
alert( Number(false) );       // 0

Обратите внимание, что undefined и null и ведут себя по-разному. Если null становится нулём, то undefined приводится к NaN.

Кроме того, нужно учесть, что сложение (+) объединяет строки. Как известно, практически все математические операторы выполняют преобразование в число. Исключением является +. Если одно из слагаемых будет строкой, все остальные тоже приведутся к строкам.

Речь идёт о конкатенации (присоединении) друг к другу:

alert( 1 + '2' ); // '12' (строка справа)
alert( '1' + 2 ); // '12' (строка слева)

Такое происходит, когда хотя бы один из аргументов — это строка. В остальных случаях значения складываются, как числа.

Логическое преобразование в JavaScript

Кроме преобразования в число и строку, в JavaScript существует и логическое преобразование. Это преобразование в JavaScript является наиболее простым и происходит в логических операторах. Вдобавок к этому, может выполняться посредством функции Boolean(value).

Правила логического преобразования: — интуитивно «пустые» значения (типа пустой строки, 0, undefined, null и NaN) становятся false; — все прочие значения становятся true.

alert( Boolean(1) ); // true
alert( Boolean(0) ); // false

alert( Boolean("Здравствуйте!") ); // true
alert( Boolean("") ); // false

Ещё один нюанс

Следует заметить, что строка с нулём "0" — это true. Некоторые языки программирования (тот же PHP) воспринимают строку "0" в качестве false. Однако в JavaScript всё иначе, и если строка не является пустой, она всегда true.

alert( Boolean("0") ); // true
alert( Boolean(" ") ); // пробел — это тоже true (любая непустая строка является true)

Делаем выводы

Итак, в JavaScript есть три самых популярных преобразований: в строку, в число и логическое преобразование. Вспомним основные моменты статьи для наилучшего усвоения материала: 1.Преобразование в строку — происходит, если нужно что-то вывести. Вызывается посредством String(value). Работает очевидным образом (для примитивных значений).
2.Преобразование в число — происходит в математических операциях. Вызывается посредством Number(value). Подчиняется правилам:

1-20219-a49f75.png

3.Логическое преобразование — происходит в логических операторах. Вызывается Boolean(value), подчиняется правилам:

2-20219-0fa36e.png

В целом правила несложны и запоминаются довольно легко. Тем не менее начинающие разработчики на JavaScript могут допускать следующие ошибки: — undefined при численном преобразовании становится не 0, а NaN; — при логическом преобразовании "0" и строки из одних пробелов типа " " всегда являются true.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
🎁 Максимальная скидка!
Черная пятница уже в OTUS! Скидка -25% на всё!