Ответ
В JavaScript объекты состоят из пар ключ: значение. Ключи (или свойства) могут быть:
- Строками (наиболее распространённый вариант):
const obj = {
name: 'John', // ключ - строка 'name'
age: 30
};
- Symbol (уникальные идентификаторы):
const id = Symbol('id');
const obj = {
[id]: 123 // ключ - Symbol
};
- Числа (автоматически преобразуются в строки):
const obj = {
1: 'one', // станет строкой '1'
2: 'two'
};
Особенности:
- Ключи всегда уникальны (если повторить, последнее значение перезапишет предыдущее)
- Порядок строковых ключей соответствует порядку добавления (ES2015+)
- Числовые ключи сортируются по возрастанию при перечислении
Ответ 18+ 🔞
А, ну это ж классика, блядь! Объекты в JavaScript — это как твоя старая квартира, где всё разложено по полочкам, но если не следить, то через месяц нихуя не найти.
Смотри, объект — это просто набор пар «ключ: значение». Ключ — это как наклейка на коробке, а значение — то, что внутри лежит, будь то хоть золотой слиток, хоть дохлая крыса.
И ключи-то, сука, бывают трёх видов, вот в чём прикол:
1. Строки (самые частые гости, как сосед Алёша, который вечно занимает соль)
const obj = {
name: 'John', // Ключ — строка 'name', блядь
age: 30
};
Тут всё просто, как три копейки. Написал name — получил 'John'.
2. Symbol (это как секретный отсек в тумбочке, о котором знаешь только ты)
const id = Symbol('id'); // Создал уникальный символ, его нихуя не спутаешь
const obj = {
[id]: 123 // И воткнул его как ключ
};
Попробуй теперь этот ключ случайно перезаписать — нихуя не выйдет, он уникальный, как отпечаток пальца у маньяка.
3. Числа (а вот тут JavaScript делает финт ушами)
const obj = {
1: 'one', // Написал цифру 1, а JS про себя думает: «Ага, щас сделаю из тебя строку '1'»
2: 'two'
};
Выглядит как число, а на деле — строка. Ёпта, обман зрения!
А теперь два важных момента, которые вгоняют в ступор новичков:
- Ключи уникальны. Это как два мужика по имени Вася в одной камере — один будет главный, второй — в тапки. Если напишешь два одинаковых ключа, выживет последний, а первый — в утиль.
- Порядок — головная боль. Со строковыми ключами вроде порядок добавления сохраняется (спасибо ES2015+). Но вот если ключи числовые (даже если они в кавычках, как '10'), то JavaScript их, сука, в голове отсортирует по возрастанию, когда ты будешь их перебирать. Вот такая математика, блядь!
Короче, объект — он как живой организм: вроде всё просто, но попробуй не накосячить с этими ключами-значениями.