NameNodeMap结构如下图:
通过Dom元素的children属性获取元素的子元素集合即HTMLCollection集合对象
通过Dom袁术的childNodes 属性返回包含被选节点的子节点的NodeList。
HTMLCollection集合中只有DOM元素节点,NodeList中包含Dom元素节点和文本节点(text)和注释节点
vara
=
[]
var
a
=
{}
这两种不能算真正的数组和对象,只是和数组和对象类型,其实这两种是json格式的
var
a
=
new
Array
()
var
a
=
new
Object()
这两种是真正的js的对象和数组
之所以前他们使用方法类似,是因为json和js中对象数组的使用方法类似,[]和数组都是根据索引调用的,{}和js的对象都是根据key值调用的,所以可以通用
这个就类似于你用getElementsByTagName("div")获取元素一样,它可以通过下表得到元素,但他其实也不是数组,是一个可以通过使用下表获取的集合
你好,
我不太明确问题中所说的“对象数组”和“数组对象”具体指什么。其实在JS中对象和数组的界定并没有很清晰,我根据我自己对JS的了解,从字面上对这个问题进行一下解答。
首先,“对象数组”,在我的理解里可以理解成两种可能:其一,数组中的元素全部是对象,即由对象构成的数组;其二,JS中以键值对组合成的对象,由于可以使用类似数组取值的方式读取对象属性的值,因此对象也可看作一种特殊的数组。
其次,“数组对象”,即通常所说的数组,因为JS中一切借对象,数组也是对象。
接下来我举些例子来补充说明我的理解:
// 1. 【对象数组-1】全部由对象组成的数组var objArr = [
{a: 1},
{a: 2},
{a: 3, b: 4}
]
// 取值示例
console.log(objArr[2].b)
// or
console.log(objArr[2]['a'])
//=================================================
// 2. 【对象数组-2】Key: Value对象
var obj = {
key1: 1,
key2: 'string',
key3: function(){},
"special-key": 'Key中出现特殊字符'
}
// 同样可以用数组的方式取对象的值
console.log(obj.key2)
// or
console.log(obj['special-key'])
//=================================================
// 3. 【数组对象】普通数组
var arr = [1, 2, 'string', function(){ return 'value' }, {a: 1}]
// 取值
console.log(arr[2])
// or
console.log(arr[3]())
所以,本质上在JS中他们其实好像没太大区别。希望能解决你的问题,如有疑问可追问!