При создании переменных в JavaScript нужно понимать, какой вид данных мы записываем. Требуется это для того, чтобы исключить какие либо ошибки с переменными и быстро разобраться, в чем же дело. ====== Логические типы ====== В JavaScript представлен один логический тип данных - ''bool''. Может имееть только два варианта значения - ''false'' или ''true''. ====== Числовые ====== * ''Number'' - числовой тип данных (к ним относятся целые и вещественные числа). Значения варьируются от ''Number.MIN_SAFE_INTEGER'' (-(253 - 1) или -9007199254740991) до ''Number.MAX_SAFE_INTEGER'' (253 - 1 или 9007199254740991). Если интересно, почему это так: [[https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Number/MIN_SAFE_INTEGER|Number.MIN_SAFE_INTEGER]] и [[https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER|Number.MAX_SAFE_INTEGER]]. let a = 19; // Целое число let b = 67.4; // Вещественное (дробное) число let c = Number("19"); // Аналог a, только через функцию * Так же существуют '''специальные числовые значения''': * ''Infinity'', ''-Infinity'' - математическая бесконечность, появляется при делении на 0 и при явном указании. * ''NaN'' (сокр. ''Not a Number'') - ошибка при вычислении (как пример, деление строки на число), причем если в части математического вычисления появилось ''NaN'', то и все выражение равняется ''NaN''. console.log(10 / 0); // Выведет Infinity console.log("" / 2); // Выводом будет NaN, так как делить строки мы не можем * ''BigInt'' - целочисленный тип данных произвольной длины. Чтобы задать значение числа с данным типом, следует добавить ''n'' в конец числа. Так же можно вызвать функцию ''BigInt'' и в качестве аргумента передать число или строку для преобразования в этот тип данных. let big_a = 123456789123456789123456789n; let big_b = BigInt("123456789123456789123456789"); // Аналог big_a, только через функцию ====== Строковые ====== * ''string'' - строковый (логично) тип данных. Любая строка должна быть заключена между одним из трех выдов кавычек: одинарные ''''', двойные ''"'' и обратные ''`''. * Первые два вида кавычек, ''''' и ''"'', просто указывают на строку. * Обратные кавычки добаляют расширенную функциональность. Если внутри таких кавычек добавить ''${...}'', то внутри фигурных скобок можно писать выражения или вызывать переменные, после чего значения выражений/строк будет введено в строку. let user = "Vladimir"; et str_a = "Hello world!"; let str_b = 'Hello Alexeyi!'; let str_c = `Hello ${user}!`; // ${user} заменится на данные в переменной user console.log(str_a); // Выведет "Hello world!" console.log(str_b); // Выведет "Hello Alexey" console.log(str_c); // Выведет "Hello Vladimir" ====== Прочие ====== * ''null'' - тип, который обозначает в прямом смысле **ничего**: // Пример использования function test() { null; } * ''undefined'' - неопределенный тип, обозначает, что **ничего не было присвоенно**: function test(a) { console.log(a); } test(); // Так как не был задан аргумент, вывод функции будет undefined * ''array'' - массив с данными. Внутри себя может иметь все перечисленные типы данных в неограниченном количестве. **Получить значение можно по индексу**. Нумерация начинается с ''0'', отрицательные значения индекса выводят значения с конца массива. let arr = [1, 2.3, "4.56", true]; console.log(arr[0]); // Выведет 1 console.log(arr[2]); // Выведет "4.56" console.log(arr[-1]); // Выведет true, первое значение с конца * ''object'' - сложный тип данных. Внутри себя может содержать все перечисленные выше типы данных в неограниченном количестве. **Получить значение можно по ключу** (обычно по строке с названием). let a = 1234567890123456789012345678901n; let obj = { "username": "Alexey", // Можно присваивать строки "age": 44, // А можно и числа "male": true, // Даже логические значения "id": a // И даже переменные } // Получение значений из объекта console.log(obg["username"]); // Вариант 1, выведет "Alexey" console.log(obj.age); // Вариант 2, выведет 44