0Pricing
Frontend Academy · Урок

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

Изучайте примитивные типы JavaScript, используйте typeof для их проверки и разбирайтесь в различии между null и undefined.

«Типы данных: string, number, boolean, null, undefined» — бесплатный урок Frontend Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Frontend Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Frontend Academy содержит 4 уроков всего.

Система типов JavaScript

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

Строка

Строки представляют текст. Используйте одинарные или двойные кавычки либо обратные кавычки (шаблонные литералы). Строки неизменяемы — методы строк возвращают новые строки. У строк есть свойство .length и множество встроенных методов.

const greeting = 'Hello';
const lang = "JavaScript";
const sentence = `I love ${lang}`;  // template literal

console.log(greeting.length);   // 5
console.log('hello'.toUpperCase()); // 'HELLO'
console.log(' trim me '.trim()); // 'trim me'

Число

В JavaScript есть единственный числовой тип. Все числа — целые и дробные — представлены 64-битными числами с плавающей точкой (IEEE 754). Поэтому 0.1 + 0.2 !== 0.3. Специальные значения: Infinity, -Infinity и NaN (не число).

const age = 30;
const price = 19.99;
console.log(0.1 + 0.2);          // 0.30000000000000004
console.log(typeof NaN);          // 'number'
console.log(isNaN('hello'));      // true
console.log(Number.isNaN('hello')); // false (safer check)

Логическое значение

Логические значения — это true или false. Они используются в условных конструкциях и сравнениях. Каждое значение в JavaScript обладает собственной истинностью: ложными являются значения false, 0, '', null, undefined, NaN. Все остальные значения являются истинными.

const isActive = true;
const isAdmin = false;

// Falsy values:
if (0) { /* never runs */ }
if ('') { /* never runs */ }
if (null) { /* never runs */ }

null

null — это явно присвоенное пустое значение. Оно означает «намеренно отсутствующее значение». Используйте null, когда хотите очистить переменную или обозначить отсутствие значения. Выражение typeof null === 'object' — известная ошибка JavaScript, сохранённая для обратной совместимости.

let selectedUser = null;  // no user selected yet
selectedUser = { name: 'Alice' };
selectedUser = null;       // cleared

undefined

undefined означает, что значение ещё не было присвоено. Переменные, объявленные без инициализации, имеют значение undefined. Отсутствующие аргументы функций имеют значение undefined. Обращение к отсутствующим свойствам объекта возвращает undefined.

let x;                       // undefined
function greet(name) {
  console.log(name);           // undefined if called as greet()
}
const obj = {};
console.log(obj.foo);         // undefined

null и undefined

null = намеренно отсутствующее значение. undefined = значение ещё не присвоено. Общее правило: пусть среда выполнения устанавливает undefined, а в собственном коде явно используйте null, когда имеете в виду «пусто».

Оператор typeof

Используйте typeof, чтобы проверить тип значения во время выполнения. Он возвращает строку: 'string', 'number', 'boolean', 'undefined', 'object', 'function', 'bigint', 'symbol'. Помните: typeof null === 'object' — известная ошибка.

typeof 'hello'     // 'string'
typeof 42          // 'number'
typeof true        // 'boolean'
typeof undefined   // 'undefined'
typeof null        // 'object' ← historical bug
typeof {}          // 'object'
typeof []          // 'object'
typeof function(){} // 'function'

Symbol и BigInt

Symbol: уникальный неизменяемый идентификатор, используемый для ключей свойств объектов, которые не должны конфликтовать. BigInt: целые числа, превышающие Number.MAX_SAFE_INTEGER (2^53-1). Создаются с помощью 42n или BigInt(42). В большинстве задач фронтенд-разработки они не нужны.

Проблемы неявного преобразования типов

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

0 == false        // true (coercion)
0 === false       // false (strict, no coercion)
'' == false       // true
'5' == 5          // true
'5' === 5         // false ✓ use this

Преобразование типов

Явно преобразуйте типы с помощью Number(), String(), Boolean() или parseInt() / parseFloat(). Явное преобразование всегда понятнее, чем reliance on неявное преобразование.

Number('42')      // 42
Number('')        // 0
Number('abc')     // NaN
String(42)        // '42'
Boolean(0)        // false
Boolean('hello')  // true
parseInt('10px')  // 10

Быстрая проверка

Что возвращает typeof null в JavaScript?

Повторение: типы данных JavaScript

Семь примитивов: строка, число, логическое значение, null, undefined, symbol, bigint. Используйте typeof для проверки типов. Используйте === в сравнениях, чтобы избежать неявного преобразования. Различайте null (намеренно пустое значение) и undefined (значение ещё не установлено). Все остальные значения являются объектами.

Часто задаваемые вопросы

Урок «Типы данных: string, number, boolean, null, undefined» бесплатный?

Да — полный текст урока «Типы данных: string, number, boolean, null, undefined» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Frontend Academy, подпишись на CoddyKit PRO. Курс Frontend Academy содержит 4 уроков всего.

Чему я научусь в уроке «Типы данных: string, number, boolean, null, undefined»?

Изучайте примитивные типы JavaScript, используйте typeof для их проверки и разбирайтесь в различии между null и undefined. Ты практикуешь Frontend Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Frontend Academy?

Предыдущий опыт не требуется. Frontend Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Типы данных: string, number, boolean, null, undefined»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Frontend Academy?

Да. Каждый урок Frontend Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Переменные: let, const, var и область действия
  2. Типы данных: string, number, boolean, null, undefined
  3. Функции: объявления, выражения и стрелочные функции
  4. Поток управления: if, else, switch, for, while
← Назад к Frontend Academy