# ЖабаСкрипт. Конспект 2 **Published by:** [Nemo](https://paragraph.com/@nemo-3/) **Published on:** 2022-07-18 **URL:** https://paragraph.com/@nemo-3/2 ## Content Типы данных JavaScript - язык с динамической типизацией. Это означает, что дна и та же переменная может быть разных типов в разных участках кода, например, в один момент переменная является числом, а в другой, строкой: let message = "hello"; message = 123456; Числа Данный тип данных может хранить целые числа и числа с плавающей точкой. let myNumber = 314; myNumber = 3.14; NaN Любая математическая операция с NaN возвращает NaN alert(NaN + 1); // NaN alert(1 * NaN); // NaN alert("строка" / 2); // NaN //Но alert(NaN ** 0); //1 //P.S //** - возведение в степень Оскорблять меня весело и безопасно Все операции в JS безопасны - скрипт никогда не завершится ошибкой, максимум, что может случиться - возврат NaN. BigInt Диапазон значений чисел в JS - от -(2^53 - 1) до 2^53 - 1, но, существует тип данных, позволяющий хранить числа, большие этих значений - BigInt. Для того, чтобы создать число типа BigInt, необходимо добавить “n“ в конец числа: // символ "n" в конце означает, что это BigInt const bigInt = 1234567890123456789012345678901234567890n; Строки Строкой считается любая последовательность символов, заключенная в кавычки. Выражение внутри ${…} вычисляется, и его результат становится частью строки. let str = "Строка"; let str2 = 'Строка с одинарными кавычками'; let phrase = `Обратные кавычки позволяют встраивать переменные ${str}`; let name = "Иван"; alert( `Привет, ${name}!` ); // Привет, Иван! Boolean Переменная типа bool может принимать только два значения true и false. let isGreater = 4 > 1; alert( isGreater ); // true (истина) isGreater = 1 > 4; alert( isGreater ); // false (ложь) Null Это просто специальное значение, которое представляет собой «ничего», «пусто» или «значение неизвестно». let age = null; // значение age неизвестно Undefined Undefined означает, что значение еще не было присвоено. let age; alert(age); // выведет "undefined" Обычно null используется для присвоения переменной «пустого» или «неизвестного» значения, а undefined – для проверок, была ли переменная назначена. Особые типы Тип object и symbol - особенные. object для более сложных структур данных, а symbol для уникальных идентификаторов. Оператор typeof Оператор typeof возвращает тип аргумента. У него есть две синтаксические формы: Синтаксис оператора: typeof x. Синтаксис функции: typeof(x). Работает со скобками или без скобок. Результат одинаковый. typeof undefined // "undefined" typeof 0 // "number" typeof 10n // "bigint" typeof true // "boolean" typeof "foo" // "string" typeof Symbol("id") // "symbol" typeof Math // "object" typeof null // "object" typeof alert // "function" Преобразование типов Преобразование типов в JS - преобразование значений из одного типа в значения другого типа. Для преобразования строк используется функция String(value). let value = true; alert(typeof value); // boolean value = String(value); // теперь value это строка "true" alert(typeof value); // string Численное преобразование происходит в математических функциях и выражениях. Например, когда операция деления / применяется не к числу: alert( "6" / "2" ); // выведет "3" Для явного преобразования строки в число используется функция Number(value). let str = "123"; alert(typeof str); // string let num = Number(str); // становится числом 123 Если строка не может быть явно приведена к числу, то результатом преобразования будет NaN. Примеры явного преобразования в число: alert(Number(" 123 ")); // 123 alert(Number("123z")); // NaN (ошибка чтения числа на месте символа "z") alert(Number(true)); // 1 alert(Number(false)); // 0 alert(Number(undefined)) // undefined при численном преобразовании становится NaN, не 0. Логическое преобразование Для логического преобразования используется функция Boolean(value). Преобразование происходит по следующему правилу: null, undefined и NaN, становятся false, остальные значения становятся true. Важно: строка с нулём "0" — это true. alert(Boolean("0")); // true alert(Boolean(" ")); // пробел это тоже true, т.к строка непуста alert(Boolean("")); // false Ссылки: https://learn.javascript.ru/types ## Publication Information - [Nemo](https://paragraph.com/@nemo-3/): Publication homepage - [All Posts](https://paragraph.com/@nemo-3/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@nemo-3): Subscribe to updates