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

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

@honey_and_money

В прошлой статье по JS мы изучили принцип работы автоматического преобразования типов. Сегодня хочу поговорить про явное преобразование.


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

В скобках конструктору передаются те данные, которые вы хотите привести к другому типу. (Что такое конструктор мы пока не знаем, сейчас нам это не потребуется)

Вот три основных способа приведения типа:

То есть тут конструкторами являются соответственно конструкции:

Number(...) - переводит переданный аргумент в число

String(...) - в строку

Boolean(...) - в логический тип

Вывод в консоль будет таким:

Теперь давайте помимо значений выведем еще и тип выводимых данных:

В консоли:

Отлично - явное преобразование типов работает как надо.

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

Рассмотрим некоторые:

Два восклицательных знака перед аргументом переводят его в логический тип данных. Как это работает? - Читаем справа налево: !5 - логическое отрицание. В JS всё что не ноль - true. Следовательно 5 - true, а !5 - false. Применим еще раз операцию логического отрицания: !!5 - теперь наше значение false перешло в true. Таким образом, мы получили ровно то, что и должны были получить при автоматическом преобразовании типов - 5 это true.

Для перевода числа в строку используется такая запись:

Число слева преобразуется в тип String автоматически при сложении со строкой. Но значение не поменяется, т.к. строка пустая. В итоге получаем наше число, только уже как строку.

Для перевода строки в число используется такая конструкция:

Интерпретатор наткнется на операцию унарного плюса (унарный плюс - операция производится с одним аргументом, а не двумя) и автоматически преобразует тип. Почему произойдет преобразование? Унарный минус нужен для изменения знака числа на противоположный. Унарный плюс как бы тоже меняет знак, но на самом деле никакого влияния на число нет. Операция изменения знака применима только к числу, поэтому интерпретатор и преобразует тип именно так.


Это просто короткие записи для удобного преобразования и удобочитаемости кода. Вы можете использовать как эти способы, так и обычные конструкторы (которые я приводил в начале статьи). Уверен что есть еще способы для преобразования типов - с ними вы обязательно познакомитесь на практике


HONEY & MONEY - мир IT, технологий и бизнеса

Report Page