使用带有点表示法和括号表示法的Javascript .length会产生不同的结果

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

本文关键字:表示 length 结果 Javascript      更新时间:2023-09-26

我已经读过两者之间的区别:点和括号表示法之间的区别

但是,当我尝试使用默认的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 列表

这里的工作示例:示例代码

更新:好的,我刚刚发现我错过了报价。它应该是["长度"]而不是[长度]。问题解决了。

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

如果要访问 length 属性,请说["length"]并实际传递一个字符串。

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

基本上,您尝试访问对象属性。这里的对象是一个数组,但它适用于其他对象。您可以使用".propertyName"或使用带有['popertyName']的括号来访问该属性

[]这意味着

从数组中获取元素。似乎您的"长度"变量被定义为 0 值,这就是为什么它为您提供了"li"数组的第一个选项。