Числа в обьекте
Почему в объекте нельзя хранить числа?
В массиве их хранить можно,но массив это по сути, тот же самый объект.
let range = {1,2,3}; //Ошибка(((
alert(range);
Ответы (3 шт):
Потому что в качестве ключа должна выступать строка:
{one:1, two:2, three:3}
или
{'1': 1, '2': 2,'3': 3}
Можно хранить числа. Но в объекте своя логика хранения данных. И он предусматривает хранение данных в виде ключ => значение. Потому что все объекты имеют свойства и их данные, например объект человек, имеет ноги и их количество. Дом имеет окна и их количество и т.д. Но, как исключение, ключом может выступать и числа.
Простое хранение чисел в объекте - неподходящая логика и неправильное использование типов))
Ошибка в вашем примере происходит не потому, что в объекте нельзя хранить числа.
В объекте можно хранить числа в качестве значений. Также, можно использовать числа в качестве ключей, просто они будут автоматически преобразованы в строки:
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 не могут начинаться с чисел, поэтому сразу происходит синтаксическая ошибка: запятая после числа заставляет воспринимать его как имя переменной, а это невозможно. Во-вторых, если бы первой ошибки не было, такие переменные всё равно не были бы найдены, так как вы их не объявляли.