Ograniczenia dotyczące kluczy obiektów w JavaScript

Możemy pisać bez cudzysłowów nie wszystkie klucze obiektów, a tylko te, które spełniają następujące ograniczenia: nie mogą zaczynać się od cyfry i nie mogą zawierać wewnątrz siebie myślnika, spacji i tym podobnych rzeczy.

Jeśli ciąg znaków narusza ograniczenie, to należy go ująć w cudzysłowy. W następnym przykładzie część kluczy nie spełnia warunków i dlatego są one w cudzysłowach:

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

Do takich kluczy można się odwoływać tylko za pomocą nawiasów kwadratowych:

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

Również odwołanie się do takich nazw poprzez właściwość obiektu doprowadzi do błędu:

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

Zaś trzeci klucz - jest dopuszczalny, i do niego możemy się odwoływać obydwoma sposobami:

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

Dany jest obiekt:

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

Dla których kluczy tego obiektu cudzysłowy są obowiązkowe, a dla których nie?

Задание 2

Popraw błędy, popełnione w następującym kodzie:

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);