Learn JavaScript

Типы данных - string, number, boolean, null, undefined

В JavaScript у каждого значения есть тип. Тип определяет, что это за значение и какие операции с ним имеют смысл. На старте чаще всего встречаются string, number, boolean, null и undefined.

Как понять тип значения

Для проверки типа используется оператор typeof.

typeof "text";      // "string"
typeof 10;          // "number"
typeof true;        // "boolean"
typeof undefined;   // "undefined"

С null есть нюанс - typeof null возвращает "object". Это историческая особенность языка.

typeof null; // "object"

Если нужно отдельно проверить null, обычно сравнивают напрямую:

value === null

string - строка

Строка - это текст. Строки пишутся в кавычках: "...", '...' или в шаблонных строках `...`. В простых примерах чаще используют двойные кавычки.

const city = "Berlin";
const greeting = "Hello, world!";

Конкатенация и шаблонные строки

Склеивание строк через +:

const name = "Jack";
"Hello, " + name; // "Hello, Jack"

Шаблонные строки (удобны, когда есть вставки):

const name = "Jack";
const age = 25;

`Name: ${name}, age: ${age}`;

Полезные свойства и методы

const text = "JavaScript";

text.length;          // 10
text.toUpperCase();   // "JAVASCRIPT"
text.includes("Script"); // true

number - число

Числа используются для вычислений. В JavaScript нет отдельного типа для целых и дробных - все это number.

const a = 10;
const b = 2.5;

a + b; // 12.5

Частые операции

10 + 5;  // 15
10 - 5;  // 5
10 * 5;  // 50
10 / 5;  // 2
10 % 3;  // 1

Особые числовые значения

NaN - “не число”, появляется при некорректных вычислениях.

Number("abc"); // NaN

Проверка:

Number.isNaN(NaN); // true
Number.isNaN(10);  // false

Infinity - бесконечность, например при делении на 0:

10 / 0; // Infinity

Осторожно со строками и числами

Оператор + может не только складывать, но и склеивать строки.

"10" + 5; // "105"
"10" - 5; // 5

Если нужно явно получить число, применяют Number():

Number("10") + 5; // 15

boolean - логический тип

boolean имеет два значения: true и false. Используется в условиях, фильтрах, проверках.

const isAdmin = true;
const isReady = false;

Пример условия:

const age = 18;

if (age >= 18) {
  "Access allowed";
} else {
  "Access denied";
}

Логические операторы

  • && - И
  • || - ИЛИ
  • ! - НЕ
true && false; // false
true || false; // true
!true;         // false

undefined - значение “не задано”

undefined обычно означает, что значение пока не установлено.

Типичные ситуации:

  • переменная объявлена, но ей ничего не присвоено
  • попытка прочитать отсутствующее свойство объекта
  • функция ничего не вернула
let value;
value; // undefined

const user = { name: "Jack" };
user.age; // undefined

function run() {}
run(); // undefined

null - значение “пусто намеренно”

null обычно используют, когда нужно явно показать: “значение пустое” или “значение сброшено”.

let selectedUser = null;
selectedUser; // null

Сравнение null и undefined по смыслу:

  • undefined - значения нет, не задано
  • null - значение есть, но оно специально установлено как пустое

Сравнение null и undefined

Важно различать строгое и нестрогое сравнение:

  • === сравнивает без приведения типов
  • == может приводить типы
null === undefined; // false
null == undefined;  // true

В базовом коде обычно используют ===, чтобы избежать неожиданных эффектов.

Быстрая памятка

  • string - текст в кавычках
  • number - числа и вычисления
  • boolean - true/false, условия
  • undefined - не задано
  • null - пусто намеренно
  • typeof помогает понять тип, но для null нужен отдельный учет

Короткий итог

Типы данных помогают понимать, что именно хранится в переменной и какие операции допустимы. На старте важно уверенно различать string, number и boolean, а также понимать разницу между null и undefined.