Динамическая типизация — Преобразование в Строку, Число и в Boolean type

динамическая типизация данных в js

Динамическая типизация — это возможность одного типа данных превращаться в другой.

Число может стать строкой, строка — числом. А объект — булевым значением.

Далее виды динамической типизации только те которые используются сейчас.

Преобразование в строку — to String

Динамическая типизация — преобразование в строку.

В JS если что то сложить со строкой, то это выражение превратится в строку.

Конкатенация — это сложение/объединение строк. Или сложение строки с чем-то: с каким-либо другим типом данных.

console.log('ww' + 'gg');
результат конкатенации

То есть две части строки спаялись в одну строку.

Прибавим к строке число.

console.log('ww' + 4);
еще одна конкатенация

К строке припаялась 4. И это уже не число, а строка. Для того что бы убедиться воспользуемся typeof.

console.log(typeof('ww' + 4));
результат строка

Складывая с булевым значением все равно возвращается строка.

console.log(typeof('ww' + false));
еще одна строка

Чаще всего что бы получить строку используют пустое значение в ''

console.log(typeof('' + false));

Как конкатенацию применить на практике?

Самый простой и частый пример это формирование URL, так как это тоже строка. Допустим у вас есть какой то url и вам нужно перейти в catalog3.

console.log('https://name.com/catalog' + 3);
применение на практике конкатенации

Преобразование в число — to Number

Динамической типизация — Преобразование в число.

Унарный плюс более удобный способ конвертации различных типов данных в число, которым пользуются в настоящее время.

Унарный плюс конвертирует объект и строку в числовой тип данных.

Поставив перед любым типом данных + получим число number. Возьмем строку '5' и преобразуем ее в число.

console.log(typeof(+'5'));
унарный +
еще один вариант

Методы parseInt()

Динамическая типизация с помощью данных методов встречается не часто, но используются для конвертации строк в числа.

console.log(parseInt('100px'));
console.log(typeof(parseInt('100px')));
parseInt превращает строку в число

Где можно применить на практике типизация строки в число?

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

let answ = +prompt(('Привет, сколько тебе лет?'));

console.log(answ);
console.log(typeof(answ));
пример их реальной практики
результат

Преобразование в булевы значения

Еще один вид динамической типизации — преобразование типов данных в булевы значения.

Например, null —  Что это? 

Истина или ложь: true или false?

Логично предположить, что пустота или «не ничего» — это ложь. И это действительно так в языке JavaScript null — это false.

JavaScript всегда будет конвертироваться в ложь — false:

  • (ноль)
  • ''
  • null
  • undefined
  • NaN.

Строка, содержащая пробел ' ' — это уже не пустая строка(!)

Все остальное, что существует в JavaScript, в логическом контексте является истиной true.

нативный способ превразения в булевы значения

В итоге получаем ничего или false. Продолжим код и переменной а присвоим 1

результат выполнения кода

Получаем true.

Блог о заработке в сети
Мы используем cookie-файлы для наилучшего представления нашего сайта. Продолжая использовать этот сайт, вы соглашаетесь с использованием cookie-файлов.
Принять