getElementsByTagName 中的零索引是什么?

What is the zero index in getElementsByTagName?

谁能告诉我,使用这个零索引会发生什么?

document.getElementsByTagName('head')[0].appendChild(script);

函数 getElementsByTagName() 将 return 一个类似数组的 HTMLCollection 对象,当您访问索引为零的此对象时,它将为您提供该数据结构的第一个条目。

索引在 JavaScript 中从零开始(与许多编程语言一样)。

getElementsByTagName returns 具有给定标签的实时 HTMLCollection 元素 name.The HTMLCollection 接口表示类似数组的元素对象。

因此传递零将给出第一个 index 中的元素,即第零个索引

var elements = document.getElementsByTagName('div');
console.log(elements);
console.log(elements[0]) // <div> First </div>
<div> First </div>
<div> Second </div>
<div> Third </div>
<div> Fourth </div>

var js = document.createElement('script');
js.src = 'myscript.js';

document.getElementsByTagName('head')[0].appendChild(js);

你得到所有的头元素(应该只有一个)然后你在那里添加脚本所以结果是

<html>
  <head>
    <script>
    ...

如果文档中没有 head,大多数浏览器都会创建 head 元素,即使标签不存在也是如此。

看看这个,它可能会有所帮助。 http://www.jspatterns.com/the-ridiculous-case-of-adding-a-script-element/