Динамическая типизация в 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