Я JS новичок читать о типах данных JS, который указал мне на Живых нодлист и Статических нодлисты на этих страницах: Why is getElementsByTagName() faster than querySelectorAll()? и HTMLCollections & NodeLists Упоминаются страниц описывают их различия, используя очень похожие примеры:JavaScript, пожалуйста, объясните этот синтаксис
Живые нодлистов:
var divs = document.getElementsByTagName("div"),
i=0;
while(i < divs.length){
document.body.appendChild(document.createElement("div"));
i++;
}
Статические нодлистов:
var divs = document.querySelectorAll("div"),
i=0;
while(i < divs.length){
document.body.appendChild(document.createElement("div"));
i++;
}
Я интересно в данном фрагменте кода:
var divs = document.getElementsByTagName("div"),
i=0;
соответственно. этот:
var divs = document.querySelectorAll("div"),
i=0;
Может кто-нибудь, пожалуйста, уточните, что это за конструкция? Или, может быть, вопрос должен быть: каково содержимое и тип переменной divs
после этого? Я предполагал, что это массив, так что я попробовал этот минималистичный JS vhere я добавил дополнительные переменные:
var divs = document.getElementsByTagName("div"),
j=5,
i=0;
alert(divs.length);
но не Mather, сколько другие переменным я не добавил к divs
вместе с document.getElementsByTagName
результатом alert()
всегда был 1. Затем я попробовал распечатать его через typeof()
, и он возвращает мне, что это объект. Что здесь происходит, это какой-то специальный синтаксический сахар JS или что?
[оператор запятая (,), где он может «на самом деле» быть полезным] (http://stackoverflow.com/q/9579546/1169798). Кажется, вы не знаете оператора запятой. – Sirko
Вы набрали ответы на свой вопрос в виде полужирных заголовков перед образцами кода. Это объекты NodeList, как живые, так и статические ». – Pointy
@Sirko в выражении 'var', запятая не является * действительно *« оператором запятой »из выражения грамматики. Возможно, расщепление волос. – Pointy