Типы данных в JavaScript: краткое руководство

Типы данных в JavaScript: краткое руководство

Типы данных — одна из базовых конструкций в любом языке программирования, на основе которых строятся другие структуры данных. В этой статье преподаватель кампуса Эльбрус Буткемп Адам Балкоев в рамках подготовки к пре курсу JavaScript рассказывает о типах данных в этом языке программирования.

JavaScript (JS) язык программирования с динамической типизацией. Это означает, что во время объявления переменной не нужно указывать ее тип данных — он определится автоматически при присвоении значения.

Типов данных в JS восемь: number, string, boolean, undefined, object, bigInt, symbol и null. Начинающим программистам предстоит пользоваться шестью из них — на них и остановимся.

number

Тип данных number — числовой. Если вы записываете значение переменной в виде числа, как в коде ниже, то JS автоматически определяет его как number:

let age = 30;

С числами в JS можно выполнять различные математические операции: складывать (+), вычитать (-), умножать ( *) и делить. Выглядеть это может, например, так:

let quantity = 10;

let price = 2.99;

let total = quantity * price;

console.log(total); // 29.9

В примере выше переменной «количество» присваивается значение 10 (целое число), а переменной «цена» — 2,99 (число с плавающей запятой). В переменной «итог» цена умножается на количество, а результат выводится в консоль.

string

Текст, заключенный в одинарные (‘) или двойные (") кавычки язык программирования автоматически относит к типу данных string, строка.

let name = "Adam";

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

let firstName = "Adam";

let lastName = "Balkoev";

let fullName = firstName + " " + lastName;

// fullName will be "Adam Balkoev"

boolean

Следующий тип данных в JS — boolean. Это логический тип, который может принимать только два значения: true или false, правда или ложь.

Например, если мы создадим переменную haveCar со значением true, JS автоматически определит тип как boolean.

Этот тип данных часто используется в операторах if и циклах for и помогает понять, какую часть кода выполнять. Например:

let isTrue = true;
let isFalse = false;

if (isTrue) {
  console.log("The value is true");
} else {
  console.log("The value is false");
}

null

null в JS — это еще один тип данных, который имеет смысл «ничего» или «значение неизвестно».

Создадим переменную корзина (trash) с пустым значением, которое свидетельствует, что мы не знаем, что находится в корзине:

let trash = null;

undefined

Если в JS создать переменную и не присвоить ей никакого значения, язык программирования автоматически определит тип данных в ней как undefined.

Рассмотрим пример: создадим переменную box с пустым значением, которое свидетельствует, что в коробке пока ничего нет:

let box;

condole.log(box) // undefined

object

Рассмотрим этот тип на примере. Напишем объект shop, внутрь которого поместим несколько свойств: название, описание и количество отделов.

let shop = {
  title: "Goshan",
  description: "Some text",
  countShop: 10,
}

Значение этой переменной JS автоматически отнесет к типу object. Язык программирования при определении типа данных не проверяет, что находится внутри объекта: он видит структуру и по ней определяет тип.

Отметим, что типы данных bigInt, symbol встречаются значительно реже, а начинающие программисты с ними почти не сталкиваются. Поэтому в этой статье не будет рассматривать их отдельно, а остановимся на ключевом слове typeof.

Ключевое слово typeof

Оператор typeof позволяет определить, какой тип данных скрывается за той или иной переменной.

Поскольку JS присваивает типы данных автоматически, иногда полезно узнать, как язык видит значение переменной. Чтобы увидеть тип данных в терминале, нужно написать консоль с ключевым словом и указанием переменной. Например, так:

let name = "Adam";
console.log(typeof name); // string

let age = 30;
console.log(typeof age); // number