将 Javascript .length 与点符号和括号符号一起使用会产生不同的结果

Using Javascript .length with dot notation and bracket notation produce different result

我已经了解了两者之间的区别: Difference between dot and bracket notation

然而,当我尝试使用默认 JavaScript .length 来组合一个简单的 HTML 示例来引用它们时:

<ul id="allList">
  <li>a</li>
  <li>b</li>
  <li>c</li>
  <li>d</li>
  <li>e</li>
  <li>f</li>
</ul>

console.log(document.getElementById("allList").getElementsByTagName("li").length);
//6


console.log(document.getElementById("allList").getElementsByTagName("li")[length]); 
//<li>a</li> 

使用 点符号 给了我 6 因为它从 HTML 注册了总共 6 个数组但是当涉及括号,为什么它给我 第一个 html 列表

这里的工作示例: sample code

更新: 好的,我刚刚发现我错过了引号。它应该是 ["length"] 而不是 [length]。问题已解决。

尝试将 'length' 放在括号中而不是长度

基本上你试图访问一个对象属性。这里的对象是一个数组,但它适用于其他对象。您可以使用“.属性Name”或使用括号 ['popertyName']

来访问 属性

方括号表示法采用字符串length 是一个变量。由于您没有明确设置它,it is window.length 这是文档中的帧数(必须为 0,因为您正在获取节点列表中的第一个元素)。

如果你想访问长度 属性 然后说 ["length"] 并实际传递一个字符串。

[] 这意味着从数组中获取元素。似乎您的 'length' 变量在某处定义为 0 值,这就是为什么它为您提供 'li' 数组的第一个元素。