DOMContentLoaded会影响预解析的结果吗? 财富值75

2016-11-03 17:57发布

5983 6 4

先贴代码,在html文档底部插入如下代码:

!function(window){         document.addEventListener("DOMContentLoaded", function(){             init4();//这里为何会访问到init4?         }, false)     }(window)     var init4=function(){         console.log(4);     }

init4是函数表达式,按说在预解析的时候,是undefined,只有执行到这一句的时候,才会被赋值为一个函数,但是如果使用了DOMContentLoaded,函数却可以在赋值之前调用后面的函数,是为什么?
DOMContentLoaded?还是别的?

自定义标题
段落格式
字体
字号
代码语言
6条回答

早就运行了

32人赞 添加讨论(1) 举报

先是变量提升一个空init4,
然后是匿名自函数,
然后添加了一个监听器DOMContentLoaded,
然后申明了一个匿名函数并赋值给init4,
然后页面DOM响应完毕,触发监听事件的回调。

74人赞 添加讨论(0)举报
59人赞 添加讨论(0)举报

你这个和上方这个没什么区别,当你执行函数的时候,下方的

52人赞 添加讨论(0)举报

页面文档完全加载并解析完毕之后,会触发DOMContentLoaded事件,HTML文档不会等待样式文件,图片文件,子框架页面的加载(load事件可以用来检测HTML页面是否完全加载完毕(fully-loaded))。

46人赞 添加讨论(0)举报
段曼 - 我很好
6楼-- · 2016-11-03 18:08

简单说一下你这里的执行顺序。

37人赞 添加讨论(0)举报

一周热门 更多>