Типы данных в JS

В этой статье вы познакомитесь с типами данными, доступными в JavaScript, на конкретных примерах.

В JavaScript существует 8 типов данных. Каждое значение, которые можно хранить в переменных и константах, соответствует одному из них.

Типы данных в JavaScript

Тип данных Описание Пример
String текстовая информация — набор символов 'Привет', "Привет, мир!" и т.д.
Number целые числа или числа с плавающей точкой 3, 3.234, 3e-2 и т.д.
BigInt целые числа произвольной длины 900719925124740999n, 1n и т.д.
Boolean логическое значение true или false true, false
undefined тип неинициализированной переменной  let a;
null только специальное значение null let a = null;
Object пары ключ-значение коллекции данных let student = { };
Symbol используют для создания уникальных идентификаторов в объектах let value = Symbol("Привет")

Все типы данных, кроме Object, называются примитивными. Object — непримитивный тип данных. В нём можно хранить коллекции данных или более сложные структуры. 

Строки в JavaScript

В типе String хранится текст — набор символов. В JavaScript строки выделяются кавычками или обратными апострофами:

  • Одинарными кавычками: 'Привет'.
  • Двойными кавычками: "Привет".
  • Обратными апострофами: `Привет`.

Одинарные и двойные кавычки практически взаимозаменяемы. В большинстве случаев нет никакой разницы, что использовать.

Обратные апострофы обычно используют, когда нужно включить переменные или выражения в строку. Это делается обертыванием переменных или выражений символом ${переменная или выражение}.

const name1 = 'Java';
const name2 = "JavaScript";
const result = `Запомни ты уже: ${name1} и ${name2} — совершенно разные ЯП!`;

Числа в JavaScript

Для хранения числовых данных в JavaScript существует два типа: Number и BigInt.

Number

В типе Number хранятся целые числа (integer) и числа с плавающей точкой (float) от -25^3 - 1 до 25^3 - 1. 

const number1 = 3;
const number2 = 3.433;
const number3 = 3e5 // 3 * 10^5

В этом типе также могут храниться значения Infinity (бесконечность), +Infinity (+бесконечность), -Infinity (-бесконечность), NaN (not a number, не число).

const number1 = 3/0;
console.log(number1); // Infinity

const number2 = -3/0;
console.log(number2); // -Infinity

// строку нельзя разделить на число
const number3 = "abc"/3; 
console.log(number3);  // NaN

BigInt

В типе BigInt можно хранить числа неопределенного размера, то есть если они не влезают в промежуток допустимых значений Number: от -25^3 - 1 до 25^3 - 1.

Значения типа BigInt создаются добавлением n в конец числа. 

// Значение типа BigInt
const value1 = 900719925124740998n;

// Сложение двух чисел типа BigInt
const result1 = value1 + 1n;
console.log(result1); // "900719925124740999n"

const value2 = 900719925124740998n;

// Ошибка! Значения типов BigInt и Number нельзя складывать
const result2 = value2 + 1; 
console.log(result2); 

Примечание. BigInt появился в новых версиях JavaScript относительно недавно, поэтому еще недоступен в некоторых браузерах, включая Safari. Проверить, поддерживает ли браузер тип BigInt можно на странице JavaScript BigInt support.

Логический тип в JavaScript

В типе Boolean можно хранить два логических (булевых) значения: true или false

const dataChecked = true;
const valueCounted = false;

Значение undefined в JavaScript

В типе undefined хранится единственное специальное значение undefined, которое присваивается неинициализированной переменной или константе. То есть если мы объявим переменную или константу, но не присвоем ей никакого значения, она будет хранить undefined.

let name;
console.log(name); // undefined

Значение undefined можно присвоить переменной или константе и вручную. 

let name = undefined;
console.log(name); // undefined

Совет. Желательно не присваивать переменным и константам значение undefined. Если нужно обозначить неизвестную информацию или «пустое» значение, лучше воспользоваться значением null.

Значение null в JavaScript

В типе null хранится единственное специальное значение null, которое обозначет «пустое» или неизвестное значение.

const number = null;

Код выше означает, что в переменной number — пусто.

Примечание. Не забывайте, что JavaScript чувствителен к регистру. Поэтому null — это не то же самое, что и Null или NULL. 

Объекты в JavaScript

Тип Object хранит пары ключ-значение коллекции данных. 

const student = {
    firstName: "Андрей",
    lastName: null,
    class: 11
};

Здесь firstName, lastName, classключи, "Андрей", null и 11 — соответствующие им значения.

Символы в JavaScript

Символы в JS отличаются от привычных символов. Тип Symbol в JavaScript используется для создания уникальных, неизменяемых идентификаторов в объектах.  

// два символа с одинаковым описанием

const value1 = Symbol("привет");
const value2 = Symbol("привет");

Несмотря на то, что и value1, и value2 хранят одинаковое описание "привет", это разные символы — так работает тип Symbol.

В JS — динамическая типизация

JavaScript — это динамически типизированный язык, то есть:

  • JS автоматически определяет тип данных переменных за вас;
  • одной переменной можно присваивать разные значения. 
// переменная data не инициализирована
// значит, она типа undefined
let data;

// переменной data присвоили число
// значит, data изменила тип на Number
data = 5;

// переменной data присвоили строку
// значит, data изменила тип на String
data = "JavaScript";

Оператор typeof в JavaScript

Чтобы узнать тип переменной или константы используют оператор typeof().

const name = "Андрей";
typeof(name); // возвращает "string"

const number = 4;
typeof(number); // возвращает "number"

const valueChecked = true;
typeof(valueChecked); // возвращает "boolean"

const a = null;
typeof(a); // возвращает "object"

Примечание. Обратите внимание, что typeof возвращает "object" для типа null. Это давно известный баг, который присутствовует в JS с момента релиза. Этот баг, скорее всего, никогда не исправят из-за необходимости сохранять обратную совместимости существующего кода с новыми версиями языка.

codechick

СodeСhick.io - простой и эффективный способ изучения программирования.

2024 ©