Преобразование типов
шпаргалка по преобразованию типов данных в JavaScript
Представляю вашему вниманию шпаргалку по преобразованию типов данных в JavaScript.
Содержание
Основные понятия
Преобразование типов может быть явным или неявным
value = Number('23') // явное преобразование
value = 5 + '25' // неявное преобразование
Проверка типа данных
console.log(typeof value);
Преобразование строки
Число в строку
value = String(10); /* => '10' */
value = String(10 + 40); /* => '50' */
value = (10 + 40).toString(); /* => '50' */
value = new String(10 + 20); /* => '30' */
Булево значение в строку
value = String(true); /* => 'true' */
value = String(false); /* => 'false' */
Массив в строку
value = String([1, 2, 3]); /* => '1,2,3' */
value = String([ ]); /* => '' */
Объект в строку
value = String({name: "Daniel"}); /* => [object Object] */
При объединении любого типа данных со строкой в результате неявного преобразования получается строка:
value = 30 + ' ' + 30; /* => 30 30 */ // Пробел считается символом.
value = 30 + '' + undefined; /* => 30undefined */
Математические операции преобразуют строку в ноль:
value = 30 - ''; /* => 30 */
value = 30 - 'text'; /* => NaN */ // если строка не пустая получаем NaN - ошибку вычисления.
value = 30 - '5'; /* => 25 */ // если строка содержит число, она будет приведена к числовому типу данных
Преобразование булевых значений
Логическое значение и математическая операция
В математических операциях true
преобразуется в единицу, false
- в ноль:
value = true + 5; /* => 6 */
value = false + 5; /* => 5 */
Строка в булево значение
value = Boolean('hello'); /* => true */ // любая непустая строка равна true.
value = Boolean(' '); /* => true */
value = Boolean(''); /* => false */ // любая пустая строка равна false.
Число в булево значение
value = Boolean(-123); /* => true */ // любое число: положительное или отрицательное - равно true.
value = Boolean(123); /* => true */
value = Boolean(0); /* => false */ // 0 это false
undefined в булево значение
value = Boolean(undefined); /* => false */
NULL в булево значение
value = Boolean(null); /* => false */
Объект в булево значение
value = Boolean({}); /* => true */ // пустой объект тоже будет приводится к true
Массив в булево значение
value = Boolean([]); /* => true */ // пустой массив - тоже true.
Преобразование чисел
Строка в число
value = Number('23'); /* => 23 */
value = Number('string...lalala'); /* => NaN */
value = parseInt(' 203px'); /* => 203 */ // функция parseInt считывает число из строки и удаляет все символы, следующие за числом, но, если символы идут перед числом (кроме пробела), вернется NaN function reads a number from a string and removes all characters after it, but if there are characters before the number (except for a space), then it will output NaN. Функция возвращает тоько целые числа.
value = parseFloat('203.212px'); /* => 203.212 */ // функция похожа на parseInt, но возвращает числа с плавающей запятой
Булево значение в число
value = Number(true); /* => 1 */
value = Number(false); /* => 0 */
Null в число
value = Number(null); /* => 0 */
Массив в число
value = Number([1, 2, 3]); /* => NaN */
Преобразование Null
value = null + 5; /* => 5 */
Преобразование undefined
value = false + undefined; /* => NaN */
Спасибо за внимание.