Страницы

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

пятница, 14 декабря 2018 г.

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

var obj = { "1": 0, 1: 9, 2: 3 } console.log(obj["1"]); // 9 console.log(obj);
Почему вернулось значение свойства 1, а не "1"? Куда пропало свойство 1?


Ответ

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

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

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