这是5月12日参加的面试:
-
面试官:讲一下DOM事件流?
我:
DOM不就是元素捕获、事件绑定、触发操作,再就是冒泡和默认事件吗?还有事件流?(当然这话我没敢跟面试官讲)第一题我就死了。然后面试官提示了下:事件捕获、事件冒泡什么的。我就讲了下事件冒泡。 -
面试官:那你说下怎么阻止事件冒泡和默认操作。
当时的我只记得oEvent.cancelBubble = true这么个古老的操作,然后阻止默认事件,只隐约记得是p*default()这么个api
你说我能过吗?我能过才有鬼T.T -
面试官:知道事件委托吗?讲一下实现吧~
我只知道把子元素的事件绑定在父元素身上,实现,实现,实现~emmmmm
你说我能过吗?我能过才有鬼T.T -
面试官:讲讲
window.onload()
和window.DOMContentLoaded()
还有jQuery.ready()
的区别
我对不起人民对不起dang,我就看过blue老师在<head>
标签内写<script>
时用过window.onload()来等待DOM加载完成,后面俩api是见都没见过的。
你说我能过吗?我能过才有鬼T.T
小结
一句话:我太菜了!
知识结构不够完善,被常见、但我知识面没覆盖到的问题问死了。
这次面试,几乎所有问题都围绕着DOM、HTTP、AJAX在展开,CSS只问了个垂直居中,JS和框架完全没问,更别提webpack和node.js了。每个面试官的问题风格真的有很大区别,我们永远不知道会被问到什么,所以我们能做的就是把所有东西都学透,才不会被问死。
我认为,当学的足够好时,面试前是不用去准备的,开口就能来,那种自信真的!经历过的人会懂。
资料整理
啥都不知道,当然得整理下才行啊~
DOMContentLoaded、load
参考资料:
MDN load事件
MDN DOMContentLoaded事件
DOMContentLoaded与load的区别
(第3篇文章讲的很仔细,推荐看看)
-
DOMContentLoaded
当初始HTML文档已完全加载并解析,而无需等待样式表,图像和子帧完成加载时,将触发DOMContentLoaded事件。
此事件的原始目标是已加载的文档。 您可以在Window界面上侦听此事件,以在捕获或冒泡阶段对其进行处理。
jQuery 中 $(document).ready(),监听的就是 DOMContentLoaded 事件 -
load
加载完整个页面(包括所有相关资源,例如样式表和图像)时,将触发load事件。 这与DOMContentLoaded相反,后者在页面DOM被加载后立即触发,而无需等待资源完成加载。
jQuery 中 $(document).load(),监听的是 load 事件
DOM事件流
在 HTML DOM 中有两种事件传播的方法:冒泡和捕获。
在冒泡中,最内侧元素的事件会首先被处理,然后是更外侧的;
在捕获中,最外侧元素的事件会首先被处理,然后是更内侧的。
在 addEventListener() 方法中,可以使用“useCapture”参数来规定传播类型: