ข้อจำกัดของคีย์อ็อบเจกต์ใน 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);