答案 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');