Типы данных: 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; // clearedundefined
undefined означает, что значение ещё не было присвоено. Переменные, объявленные без инициализации, имеют значение undefined. Отсутствующие аргументы функций имеют значение undefined. Обращение к отсутствующим свойствам объекта возвращает undefined.
let x; // undefined
function greet(name) {
console.log(name); // undefined if called as greet()
}
const obj = {};
console.log(obj.foo); // undefinednull и 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 — локальная установка не требуется.
Все уроки этого курса
- Переменные: let, const, var и область действия
- Типы данных: string, number, boolean, null, undefined
- Функции: объявления, выражения и стрелочные функции
- Поток управления: if, else, switch, for, while