Ограничения за ключовете на обекти в JavaScript

Можем да пишем без кавички не всички ключове на обекти, а само тези, които отговарят на следните ограничения: те не могат да започват с цифра и не могат да съдържат вътре в себе си тире, интервал и подобни неща.

Ако низ нарушава ограничението, тогава той трябва да се постави в кавички. В следващия пример част от ключовете не отговарят на условията и затова са поставени в кавички:

javascriptlet obj = {'1key': 'a', 'key-2': 'b', key3: 'c'};

До такива ключове може да се достига само чрез квадратни скоби:

javascriptconsole.log(obj['1key']);
console.log(obj['key-2']);

Също така, опит за достъп до такива имена чрез свойство на обекта ще доведе до грешка:

javascriptconsole.log(obj.1key);
console.log(obj.key-2);

А ето третият ключ - допустим е, и до него можем да достигаме по двата начина:

javascriptconsole.log(obj['key3']);
console.log(obj.key3);
Задание 1

Даден е обект:

javascriptlet obj = {
  '1a': 1,
  'b2': 2,
  'c-c': 3,
  'd 4': 4,
  'e5': 5
};

За кои ключове на този обект кавичките са задължителни, а за кои не са?

Задание 2

Поправете грешките, допуснати в следния код:

javascriptlet obj = {
  '1a': 1,
  'b2': 2,
  'c-c': 3,
  'd 4': 4,
  'e5': 5
};

console.log(obj.1a);
console.log(obj.b2);
console.log(obj.c-c);
console.log(obj.d 4);
console.log(obj.e5);