我刚刚发现了一些真正让我困惑的事情:
<!DOCTYPE html>
<html lang="en">
<head>
<title></title>
</head>
<body>
<script type="text/javascript">
console.log(document.head);
</script>
</body>
</html>
每次我在 Safari 和 Chrome 中刷新此页面时,控制台输出都会在 JavaScript“HTMLHeadElement”和 HTML 本身之间交替。
有人愿意详细说明吗?
最佳答案
我在 Chrome 中尝试了这个实验,得到了相同的结果。我的猜测是 webkit 实现中存在某种解析竞争条件。
当我修改代码不立即运行代码时,我可以获得一致的结果。
<script type="text/javascript">
setTimeout(function() { console.log(document.head) } , 0);
</script>
控制台将显示带有展开/折叠三 Angular 形的 HTML,因此可能作为一个对象。
<head>
<title></title>
</head>
如果我添加 .outerHTML
,我也会在那里获得一致的结果,将 HTML 记录为字符串。
<script type="text/javascript">
console.log(document.head.outerHTML);
</script>
最后,添加 .toString()
将一致地记录 [object HTMLHeadElement]
<script type="text/javascript">
console.log(document.head.toString());
</script>
关于javascript - console.log(document.head) 结果随每次刷新而交替,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12736679/