jQuery它的Object结构?

时间:2017-02-21 13:33:12

标签: javascript jquery object key structure

为什么jQuery会在“子类别”([0 ... 99]等)中对找到的元素进行排序,而不将其声明为对象键/对?

e.x 0 ... 99

1 个答案:

答案 0 :(得分:0)

这不是jQuery,它是可迭代对象的浏览器控制台行为(在Google Chrome和Microsoft Edge中测试过)。

尝试运行此代码以查看数组的此行为:

var test = { arr: [] }, i = 0;
for(;i<200;) test.arr[i++] = 0;
console.log(test);

$(“div”)返回的对象是可迭代的。来自MDN

  

如果对象定义了其迭代行为,则该对象是可迭代的,例如   什么值在for..of构造中循环。一些内置的   类型(如Array或Map)具有默认的迭代行为   其他类型(如Object)则没有。

浏览器正在使用此功能显示分组值,以避免一次显示所有值。

要验证对象是否可迭代,您可以在控制台中运行以下代码(在Google Chrome上测试):

console.log(typeof {}[Symbol.iterator] === 'function');
console.log(typeof [][Symbol.iterator] === 'function');
console.log(typeof $("div")[Symbol.iterator] === 'function');