
JavaScript — это такой весёлый язык, который позволяет писать код так, что сам потом удивляешься, как он вообще работает. Сегодня мы разберём основные типы данных в JavaScript, но не просто сухой теорией, а с хорошей порцией юмора и примерами!
Числа (Number) – когда нужно посчитать чаевые, но округление работает против вас
В JavaScript числа бывают целыми и с плавающей запятой. Это удобно, но вот как оно работает…
let a = 0.1 + 0.2;
console.log(a); // Ожидаем 0.3, но JavaScript говорит 0.30000000000000004
Вот вам и арифметика! Так что если вдруг не сходится баланс в банке — возможно, их система написана на JavaScript. Если нужна точность, используйте toFixed()
или BigInt
.
let big = 1234567890123456789012345678901234567890n;
console.log(big); // 1234567890123456789012345678901234567890n
Да, число n
в конце — это не опечатка, а BigInt. Работает, как надо, но не совместимо с обычными Number
.
Строки (String) – когда JSON парсится, а шутки не заходят
Строки — это то, что мы используем, чтобы передавать текст. Например:
let greeting = "Привет, мир!";
let anotherGreeting = 'Hello, world!';
let yetAnother = `Эй, это JavaScript!`;
Можно использовать двойные, одинарные и шаблонные кавычки. Но самое весёлое начинается, когда нужно вставить переменные:
let name = "Вася";
console.log(`Привет, ${name}!`); // Привет, Вася!
А ещё строки можно складывать, как школьные тетради:
let part1 = "Я люблю";
let part2 = " JavaScript";
console.log(part1 + part2); // "Я люблю JavaScript"
Но если в этом деле участвуют числа, может случиться неожиданность:
console.log("2" + 2); // "22" — JavaScript решил, что это строки
console.log(2 + "2"); // "22" — опять строки!
console.log(2 + 2 + "2"); // "42" — классика
JS любит строки больше, чем числа, и если видит хоть одну строку, всё превращает в текст. Вот такая дружелюбность!
Булевы значения (Boolean) – когда true это false, а false это true (почти)
Boolean — это всего два значения: true
(истина) и false
(ложь). Казалось бы, ничего сложного, но JavaScript умеет превращать всё в булево значение.
console.log(Boolean(0)); // false
console.log(Boolean("")); // false
console.log(Boolean("false")); // true (потому что строка не пустая!)
console.log(Boolean([])); // true (потому что массив!)
console.log(Boolean({})); // true (потому что объект!)
Внимательно проверяйте условия, потому что "0"
и []
могут дать неожиданные результаты!
Объекты (Object) – когда можно хранить всё подряд в одной коробке
Объекты — это такие контейнеры для данных, где можно хранить что угодно:
let user = {
name: "Иван",
age: 25,
isAdmin: true
};
console.log(user.name); // Иван
console.log(user["age"]); // 25
Можно добавлять и удалять свойства на лету:
user.city = "Москва";
delete user.age;
console.log(user); // { name: "Иван", isAdmin: true, city: "Москва" }
Если нужно передавать данные между системами, пригодится JSON:
let json = JSON.stringify(user);
console.log(json); // "{\"name\":\"Иван\",\"isAdmin\":true,\"city\":\"Москва\"}"
А чтобы обратно из строки сделать объект:
let newUser = JSON.parse(json);
console.log(newUser.name); // Иван
Массивы (Array) – когда список дел превращается в хаос
Массив — это объект, но особенный, с нумерованными элементами.
let fruits = ["Яблоко", "Банан", "Вишня"];
console.log(fruits[1]); // Банан
Добавить элемент:
fruits.push("Груша");
console.log(fruits); // ["Яблоко", "Банан", "Вишня", "Груша"]
Удалить последний:
fruits.pop();
console.log(fruits); // ["Яблоко", "Банан", "Вишня"]
Перебрать массив:
fruits.forEach((fruit, index) => {
console.log(`${index + 1}: ${fruit}`);
});
Массивы могут хранить что угодно:
let mix = [42, "Привет", { name: "Объект" }, [1, 2, 3]];
console.log(mix[2].name); // Объект
Итог
JavaScript — это весело, но иногда непредсказуемо. Числа могут округляться неожиданно, строки превращаться в числа (и наоборот), булевы значения — вести себя странно, объекты — быть всем подряд, а массивы — хранить всё на свете. Но если понимать, как это работает, можно писать крутой код и получать удовольствие!