console.log(变量); VS console.log([variable]); /一个给出信息,另一个没有?

时间:2015-08-27 21:57:06

标签: javascript console.log

在Chrome中,这会提供HTML标记:

var image = document.getElementsById('image');

console.log(image);

在Chrome中,这会提供各种信息,例如clientWidth等:

console.log([image]);

为什么会这样?

2 个答案:

答案 0 :(得分:4)

HTMLElement是一种挑剔的方法。它是由浏览器团队决定实现的,因为没有正式的规范(最后我检查过)。

在第一个console.log Chrome.console似乎在您的HTMLElement上运行.log(image)(或等效)方法,并为您提供字符串输出。

在第二个.toString Chrome.console中输出数组的内容作为索引对象/基元。它不会尝试处理数组的子节点与.log([image])的第一级参数相同,因此它为您提供实际的HTMLElement对象,而不是字符串输出。

答案 1 :(得分:1)

console.log(image);

这会记录文档中HTMLELement的直接引用,显示实际的<img> (或任何其他元素)标记。

console.log([image]);

这里传递一个Array作为参数,它将记录一个数组。该数组只会显示Object的{​​{1}}。