Типы данных в JavaScript
В этой статье объясняются типы данных в JavaScript.
YouTube Video
Типы данных в JavaScript
JavaScript имеет типы данных для классификации значений, которые можно разделить на примитивные типы и объектные типы. Типы данных определяют, какой тип данных хранится в переменной, и влияют на то, как с ними можно работать.
Примитивные типы
Примитивные типы — это простые типы данных, которые представляют одно значение. В JavaScript есть следующие 7 примитивных типов.
number
1let num = 42;
2let pi = 3.14;
3
4console.log("Value of num:", num);
5console.log("Value of pi:", pi);
number
— это тип, используемый для работы с числовыми значениями, включая целые числа и числа с плавающей запятой (десятичные числа). Обработка значений, превышающих определенные пределы, приводит кInfinity
илиNaN
(Не-число).
1// Decimal calculations
2console.log(0.1 + 0.2 === 0.3); // false
3console.log(0.1 + 0.2); // 0.30000000000000004
4
5// Calculations with large numbers
6console.log(9007199254740991 + 1); // correct value
7console.log(9007199254740991 + 2); // incorrect value
- В JavaScript числа представлены в виде чисел с плавающей запятой. В результате некоторые дробные числа (особенно те, которые нельзя точно представить в двоичной системе) могут быть выражены неточно.
- Когда требуются точные расчёты, например для денежных значений, необходимо избегать таких ошибок округления. Например, вы можете использовать
BigInt
или настроить количество знаков после запятой с помощью методаtoFixed()
.
string
1let greeting = "Hello, world!";
2let char = 'A';
3const message = `"${greeting}" in JavaScript`;
4
5console.log("Value of greeting:", greeting);
6console.log("Value of char:", char);
7console.log("Value of message:", message);
string
— это тип данных, используемый для обработки текста, представляющий последовательность символов. Текст представляется, заключённый в одинарные кавычки ('
) или двойные кавычки ("). Начиная с ES6, шаблонные литералы позволяют легко встраивать переменные, используя обратные апострофы (
). Для встраивания переменной используйте синтаксис${}
.
boolean
1let isAvailable = true;
2let hasError = false;
3
4console.log("Value of isAvailable:", isAvailable);
5console.log("Value of hasError:", hasError);
boolean
представляет логическое значение и может иметь только два значения:true
илиfalse
. Этот тип используется как результат условных выражений или как флаг.
null
1let result = null;
2
3console.log("Value of result:", result);
null
— это тип данных, который явно указывает 'отсутствие значения'.null
устанавливается разработчиками для обозначения намеренного отсутствия значения.
undefined
1let score;
2let subject = undefined;
3
4console.log("Value of score:", score); // undefined
5console.log("Value of subject:", subject);
undefined
— это тип данных, который означает 'неопределённость'.undefined
автоматически задаётся, когда переменная объявлена, но ей не присвоено значение.
bigint
1let bigIntValue = 9007199254740991n;
2let anotherBigInt = 123456789012345678901234567890n;
3
4console.log("Value of bigIntValue:", bigIntValue);
5console.log("Value of anotherBigInt:", anotherBigInt);
bigint
— это тип данных для работы с большими целыми числами.bigint
позволяет точно представлять большие целые числа, которые не могут быть представлены типомnumber
. Литералыbigint
представлены посредством добавленияn
в конце числа.bigint
— это тип данных для работы с целыми числами произвольного размера, без ограничений по диапазону. Однакоbigint
иnumber
не могут быть использованы вместе в одной операции, поэтому требуется осторожность.
Symbol
1let sym1 = Symbol('id');
2let sym2 = Symbol('id');
3
4console.log("sym1 === sym2:", sym1 === sym2); // false
Symbol
– это тип данных, используемый для создания уникальных идентификаторов. Он создается с помощьюSymbol()
и может использоваться как свойство объекта. В отличие от других примитивных типов,Symbol
имеет уникальные значения, поэтому даже с одинаковым содержанием он рассматривается как другойSymbol
.
Типы объектов
Типы объектов – это структуры данных, которые могут хранить несколько значений. Объект – это коллекция пар ключ-значение, которая может иметь свойства и методы.
Object
1let person = {
2 name: "John",
3 age: 30,
4 isEmployee: true
5};
6console.log(person.name); // John
Объект
— это коллекция свойств (пары ключ-значение), которая может хранить различные типы данных. Объекты обозначаются фигурными скобками{}
, и каждое свойство соединяется символом:
между ключом и значением.
Array
1let numbers = [10, 20, 30];
2console.log(numbers[0]); // 10
3console.log(numbers[1]); // 20
4console.log(numbers[2]); // 30
5console.log(numbers[3]); // undefined
Массив
— это список, который содержит несколько значений в упорядоченном виде. Массивы обозначаются квадратными скобками[]
, а значения разделяются запятыми,
. Каждому элементу можно получить доступ с использованием индекса, начинающегося с 0.
Function
1function greet(name) {
2 return "Hello, " + name;
3}
4console.log(greet("Alice")); // Hello, Alice
- Функции – это тип объектов и переиспользуемые блоки кода. Функции могут быть определены с использованием ключевого слова
function
.
Другие типы объектов
- В JavaScript также есть встроенные типы объектов, такие как
Date
,RegExp
,Map
иSet
. Они обрабатывают данные в соответствии с конкретными случаями использования.
Преобразование типов
Неявные и явные преобразования типов часто выполняются в JavaScript.
Неявное преобразование типов
- JavaScript может автоматически преобразовывать типы при выполнении операций между различными типами.
1let result = 5 + "5"; // "55" (the number is converted to a string)
2
3console.log(result);
- В этом примере число
5
неявно преобразуется в строку, в результате получается строка"55"
.
Явное преобразование типов
- Разработчики также могут выполнять преобразования типов явно.
1let num = "123";
2let convertedNum = Number(num); // Converts "123" to the number 123
3
4console.log(typeof num);
5console.log(typeof convertedNum);
- В этом примере функция
Number()
используется для явного преобразования строки"123"
в число123
.
Проверка типов
В JavaScript вы можете использовать оператор typeof
для проверки типа данных переменной.
1// Output: The type of 42 is: number
2console.log('The type of 42 is:', typeof 42);
3
4// Output: The type of 42 is: bigint
5console.log('The type of 42n is:', typeof 42n);
6
7// Output: The type of "hello" is: string
8console.log('The type of "hello" is:', typeof "hello");
9
10// Output: The type of true is: boolean
11console.log('The type of true is:', typeof true);
12
13// Output: The type of undefined is: undefined
14console.log('The type of undefined is:', typeof undefined);
15
16// Output: The type of null is: object
17console.log('The type of null is:', typeof null);
18
19// Output: The type of Symbol() is: symbol
20console.log('The type of Symbol() is:', typeof Symbol());
21
22// Output: The type of {} is: object
23console.log('The type of {} is:', typeof {});
24
25// Output: The type of function () {} is: function
26console.log('The type of function () {} is:', typeof function () {});
Вывод
- Примитивные типы включают
number
,string
,boolean
,null
,undefined
иsymbol
. - Типы объектов включают
Object
,Array
,Function
и другие. - Поскольку происходят как автоматические, так и явные преобразования типов, важно понимать правильное использование типов данных.
Вы можете следовать этой статье, используя Visual Studio Code на нашем YouTube-канале. Пожалуйста, также посмотрите наш YouTube-канал.