Страницы

Поиск по вопросам

понедельник, 30 декабря 2019 г.

Как работает приведение типов ключей при создании объекта?

#javascript




var obj = { "1": 0, 1: 9, 2: 3 } 
console.log(obj["1"]); // 9
console.log(obj);




Почему вернулось значение свойства 1, а не "1"?
Куда пропало свойство 1?
    


Ответы

Ответ 1



Потому что ключом в объекте всегда является строка (ну ладно, ещё symbol, но он тут не при чём). Получается, ты в литеральную запись объекта включаешь два одинаковых свойства (разрешено в ES3-, ES5 non strict, ES6+ в любом режиме) и последнее из свойств побеждает (перезаписывает более раннее значение).

Комментариев нет:

Отправить комментарий