Динамическая типизация в Javascript

Сегодня поговорим про динамическую типизацию в JavaScript.

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

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

toString

Рассмотрим пример с превращением в строку String

Используем старый оператор, которым редко пользуются в разработке String

console.log(typeof(String(null)));
// Вернет string

Этот оператор просто оборачивает все в ковычки, что в свою очередь меняет на строчный тип данных.

Эту же команду можем запустить с числом.

console.log(typeof(String(4)));
// Вернет string

Четверка, как числовой тип данных превратилась в строку.

Конкатинация

Конкатинация это сложение строки с чем то. Можно складывать строки между собой, строки с числами, числа с числами…

Пример:

console.log(typeof(5 + "hello"));
// Вернет string

Следует помнить, что всегда при сложении со строкой, результатом всегда будет строка.

При помощи кода на JavaScript можно так же формировать CSS стили.

Давайте посмотрим как можно это реализовать.

Нам нужно учитывать что нужно будет передавать стили в виде строки.

Назовем переменную например fontSize и допустим эта переменная будет формироваться динамически. К примеру нам будет приходить значение 26

Тут нужно помнить что в CSS у всех свойств есть единица измирения, поэтому наш код будет примерно таким:

let fontSize = 26 + "px";

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

toNumber

Теперь рассмотрим как превратить в числовой тип данных.

Точно так же как и в примере со строками, у чисел существует конструкция, которая называется Number

console.log(typeof(Number("4")));
// Вернется числовой тип данных

Далее разберем более простой и лаконичный способ, который называется “унарный плюс”

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

console.log(typeof(+'5'));
// Вернет числовой тип данных

Еще один метод который называется parseInt

Он принимает два аргумента, в первой части то что требуется поменять, а во второй части ставим 10 - десятичная система.

console.log(parseInt("15px", 10))

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

Нужно запомнить, данные которые мы получаем от пользователей через сайт, всегда имеют тип `string`

to Boolean

Сначала пройдем по всем значениям, которые будут возвращать false

Первое это будет 0

Далее следует пустая строка, она тоже возвращает false

Строка с пробелом, это уже не пустая строка.

Далее следуют null, undefined и NaN

Все остальное, что существует в JavaScript возвращает true

Небольшой пример с булиновым значением:

let switcher = null;

if(switcher) {
    console.log("Working...")
}
// Не сработает, 
// switcher = 'false'

Если в switcher запихнуть 1 то тогда в консольке увидим Working...

Потому что значение станет правдивым - true

let switcher = 1;

if(switcher) {
    console.log("Working...")
}

Boolean

Точно так же как и в других типах данных у булиновых типов существует свой метод это Boolean

console.log(Boolean("4"));
// Вернется true

Еще один редкий прием, это конда перед строкой поставить два восклицательных знака !!

Например:

console.log(!!"4")
// Вернет Boolean

Это были основы динамической типизации в JavaScript