第四篇

1.说说前端中的事件流?

HTML中与javascript交互式通过事件驱动来实现的,例如鼠标点击事件,onclick,页面的滚动事件onscroll等等,可以向文档或者文档中的元素添加事件侦听器来预订事件。想要知道这些事件是在什么时候进行调用的,就需要了解一下“事件流”的概念

什么是事件流:事件流描述的是从页面中接收事件的顺序,DOM2级事件流包括下面几个阶段。

事件捕获阶段

处于目标阶段

事件冒泡阶段

addEventListener:addEventListener是DOM2级事件新增的指定事件处理程序的操作,这个方法接收3个参数:

要处理的事件名,作为事件处理程序的函数和一个布尔值(默认为false,即冒泡的方式)。最后这个布尔值参数如果是true,表示在捕获阶段调用事件处理程序;

如果是false,表示在冒泡阶段调用事件处理程序。

向dom绑定事件的三种方式

1)行内绑定

<button onclick="clickhander()">按钮</button>

2)js内绑定(DOM0)

btnDom.onclick = function clickHandler() {
       console.log('click');            
}

3)事件监听器绑定(DOM2)默认是为false=》冒泡。

btn.addEventListener('click', e => {
  console.log('click')
})

 

2.如何让事件先冒泡后捕获?

  在DOM标准事件模型中,是先捕获后冒泡。但是如果要实现先冒泡后捕获的效果,对于同一个事件,监听捕获和冒泡,

分别对应相应的处理函数,监听到捕获事件,先暂缓执行,直到冒泡事件被捕获后再执行捕获事件。

 

3.mouseover和mouseenter的区别?

  mouseover:当鼠标移入元素或其子元素都会触发事件,所以有一个重复触发,冒泡的过程。对应的移除事件是mouseout.

  mouseenter:当鼠标移除元素本身(不包含元素的子元素)会触发事件,也就是不会冒泡,对应的移除是mouseleave。

4.js的new操作符做了哪些事情?

  new操作符新建了一个空对象,这个对象原型指向构造函数的prototype,执行构造函数后返回这个对象。

5.js的各种位置,比如clientHeight,scrollHeight,以及scrollTop,offsetTop,clientTop的区别

  1)clientHeight:表示的是可视区域的高度,不包含border和滚动条

  2)offsetHeight:表示可视区域的高度,包含了border和滚动条

  3)scrollHeight:表示了所有区域的高度,包含了因为滚动被隐藏的部分。

  4)clientTop:表示边框border的厚度,在未指定的情况下一般为0。

  5)scrollTop:滚动后被隐藏的高度,获取对象想对于由offsetParent属性指定的父坐标(css定位的元素

或body元素)距离顶端的高度。

6.Iframe是什么?有什么缺点?

  定义:iframe元素会创建包含另一个文档的内联框架

  提示:可以将提示文字放在<iframe></iframe>之间,来提示某些不支持iframe的浏览器

  缺点:

    会阻塞主页面的onload事件

    搜索引擎无法解读这种页面,不利于SEO

    iframe和主页面共享连接池,而浏览器对相同区域有限制所以会影响性能。

7.Doctype作用?严格模式和混杂模式如何区分?他们又何意义?

  Doctype声明于文档最前面,告诉浏览器以何总方式来渲染页面,这里有两种模式,严格模式和混杂模式。

  严格模式的排版和JS运作模式是以该浏览器支持的最高标准运行。

  混杂模式,向后兼容,模拟老式浏览器,防止浏览器兼容页面。

8.link标签和import标签的区别?

  link属于html标签,而@import是css提供的

  页面被加载时,link会同时被加载,而@import引用的css会等到页面加载结束后加载。

  link是html标签,因此没有兼容性,而@import只有IE5以上才能识别。

  link方式样式的权重高于@import。

9.多行元素的文本省略号?

10.简述一下src和href的区别?

1)href是指向网络资源所在位置,建立和当前元素(锚点)或当前文档(链接)之间的链接,用于超链接。

2)src是指向外部资源的位置,指向的内容将会嵌入到文档中当前标签所在位置;在请求src资源时将其

  指向的资源下载并应用到文档内,例如js脚本,img图片和frame等元素。

3)当浏览器解析到元素时,会暂停其他资源的下载和处理,直到将该资源加载、编译、执行完毕,

  图片和框架等元素也如此,类似于将所指向资源嵌入当前标签内。这也是为什么将js脚本放在底部而不是头部。

   转载:http://www.itlike.com/article/23

  

posted @ 2019-03-15 16:33  秋风起落叶摇  阅读(279)  评论(0编辑  收藏  举报