JavaScriptда объектлар калитларига қўйиладиган чекловлар
Биз объектларнинг ҳамма калитларини қўс ишорасиз ёзмаймиз, фақат қуйидаги чекловларга жавоб берадиганларинигина: улар рақамдан бошланмаслиги керак ва ичида дефис, бош joy ва шуңга ўхшаш нарсалар бўлмаслиги керак.
Агар сатр чекловни бузса, уні қўс ишораларга олиш керак. Қуйидаги мисолда бир қисм калитлар шартларга жавоб бермайди ва шу сабаб қўс ишоралар ичида туради:
let obj = {'1key': 'a', 'key-2': 'b', key3: 'c'};
Бундай калитларга фақат квадрат қавслар орқали мурожат қилиш мумкин:
console.log(obj['1key']);
console.log(obj['key-2']);
Шунингдек, бундай номларга объект хусусияти орқали мурожат қилиш хатоликка олиб келади:
console.log(obj.1key);
console.log(obj.key-2);
Аммо учинчи калит - рухсат этилган, ва унга биз ҳар икки усул билан mурожат қилишимиз мумкин:
console.log(obj['key3']);
console.log(obj.key3);
Объект берилган:
let obj = {
'1a': 1,
'b2': 2,
'c-c': 3,
'd 4': 4,
'e5': 5
};
Бу объектнинг қайси калитлари учун қўс ишоралар majburiy, қайсилари учун эмас?
Қуйидаги кодда қилган хатоларингизни tўғриланг:
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);