Sekatan pada Kunci Objek dalam JavaScript
Kita tidak boleh menulis tanpa tanda kutip untuk semua kunci objek, tetapi hanya untuk kunci yang mematuhi sekatan berikut: mereka tidak boleh bermula dengan digit dan tidak boleh mengandungi sengkang, ruang dan perkara serupa di dalamnya.
Jika rentetan melanggar sekatan, ia perlu diletakkan dalam tanda kutip. Dalam contoh berikut, sebahagian kunci tidak mematuhi syarat dan oleh itu diletakkan dalam tanda kutip:
let obj = {'1key': 'a', 'key-2': 'b', key3: 'c'};
Kunci seperti ini hanya boleh diakses melalui kurungan siku:
console.log(obj['1key']);
console.log(obj['key-2']);
Juga, cubaan untuk mengakses nama sedemikian melalui sifat objek akan menyebabkan ralat:
console.log(obj.1key);
console.log(obj.key-2);
Namun, kunci ketiga adalah sah, dan kita boleh mengaksesnya dengan kedua-dua cara:
console.log(obj['key3']);
console.log(obj.key3);
Diberi objek:
let obj = {
'1a': 1,
'b2': 2,
'c-c': 3,
'd 4': 4,
'e5': 5
};
Untuk kunci mana dalam objek ini tanda kutip adalah wajib, dan untuk mana tidak?
Betulkan kesilapan yang dilakukan dalam kod berikut:
let 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);