Числа в обьекте

Почему в объекте нельзя хранить числа?

В массиве их хранить можно,но массив это по сути, тот же самый объект.

let range = {1,2,3};  //Ошибка(((
alert(range);


Ответы (3 шт):

Автор решения: Станислав Л

Потому что в качестве ключа должна выступать строка:

{one:1, two:2, three:3}

или

{'1': 1, '2': 2,'3': 3}
→ Ссылка
Автор решения: Алексей Шиманский

Можно хранить числа. Но в объекте своя логика хранения данных. И он предусматривает хранение данных в виде ключ => значение. Потому что все объекты имеют свойства и их данные, например объект человек, имеет ноги и их количество. Дом имеет окна и их количество и т.д. Но, как исключение, ключом может выступать и числа.

Простое хранение чисел в объекте - неподходящая логика и неправильное использование типов))

→ Ссылка
Автор решения: vsemozhebuty

Ошибка в вашем примере происходит не потому, что в объекте нельзя хранить числа.

В объекте можно хранить числа в качестве значений. Также, можно использовать числа в качестве ключей, просто они будут автоматически преобразованы в строки:

console.log({ 1: 1, 2: 2, 3: 3 });

Однако вы используете краткую нотацию записи литералов. Запись вида:

const a = 1;
const b = 1;

const object = { a, b };

по сути означает:

const a = 1;
const b = 1;

const object = {
  // найти переменную a, создать ключ 'a' и присвоить ему значение переменной a,
  // найти переменную b, создать ключ 'b' и присвоить ему значение переменной b,
};

И когда вы пишете let range = {1,2,3}; — у вас сразу две проблемы: во-первых, имена переменных в JS не могут начинаться с чисел, поэтому сразу происходит синтаксическая ошибка: запятая после числа заставляет воспринимать его как имя переменной, а это невозможно. Во-вторых, если бы первой ошибки не было, такие переменные всё равно не были бы найдены, так как вы их не объявляли.

→ Ссылка