#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+ в любом режиме) и последнее из свойств побеждает (перезаписывает более раннее значение).
Комментариев нет:
Отправить комментарий