Метод item() не работает
Начинаю изучать JavaScript по книге Дакетта от издания 2017 года. В разделе про массивы там указано следующее:
Пытаюсь воспроизвести этот код на странице, но получаю следующую ошибку:
Uncaught TypeError: colors.item is not a function at test.js:3:27
Интересно, что если посмотреть на этот пример в файлах, которые идут к дополнению к книге, то можно увидеть немного другой код, который уже работает:
var colors = new Array('белый', 'черный', 'пользовательский');
var el = document.getElementById('colors');
el.textContent = colors[0];
Вопрос следующий: почему не работает метод item() из примера из книги?
Ответы (2 шт):
У массива(Array) нет метода item. Чтобы получить, например 3 элемент массива, вы можете воспользоваться литералом массива [2] или методом at(2) (Только в последней версии ES2022)
var colors = new Array('белый', 'черный', 'пользовательский');
document.getElementById('colorWithArrayLiteral').textContent = colors[1];
document.getElementById('colorWithAt').textContent = colors.at(2);
<div id="colorWithArrayLiteral"></div>
<div id="colorWithAt"></div>
Текст в книги и правильный и неправильный одновременно. Првильно то, что метод item есть. Но имеется он не у массивов, а у коллекций (объекты, ведущие себя подобно массиву), например
А неправильно то, что автор, видимо, путает массивы и коллекции.
Может быть до 2017 у массивов были эти методы (не смог найти инфу). Сейчас это точно не так.
