我是 JS 新手,正在阅读有关 JS 数据类型的内容,这让我找到了这些页面上的 Live NodeLists 和 Static NodeLists:Why is getElementsByTagName() faster than querySelectorAll()?和 HTMLCollections & NodeLists提到的页面使用非常相似的示例描述了它们的差异:
实时节点列表:
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);
但无论我向 div
添加了多少其他变量以及 document.getElementsByTagName
,alert()
的结果始终为 1 .然后我尝试通过 typeof()
打印它,它返回我这是对象。这是怎么回事,是一些特殊的JS语法糖还是什么?
最佳答案
var divs = document.getElementsByTagName("div"),
i=0;
与
相同var divs = document.getElementsByTagName("div");
var i=0;
您可以通过使用逗号分隔的列表,使用单个 var
声明多个变量。
关于JavaScript请解释一下这个语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19840340/