JavaScript基础

1、continue break return 的区别?

continue:用于跳出本次循环,继续下一次循环(少执行一次循环体)
break:用于立即跳出整个循环,提高效率
return:主要用于结束整个函数体 能够返回return语句中的值

2、怎么理解变量提升?

3、对arguments的理解?

4、什么是DOM?

DOM即文档对象编程,是W3C组织推荐的处理HTML语言的编程接口,通过DOM接口可以改变网页的内容、结构和样式。获取得到的DOM元素是一个对象,所以称为文档对象模型。DOM的*对象是document。

5、DOM中的API有哪些?

创建、增、删、改、查、自定义属性操作

6、谈一谈DOM事件流?

事件发生时会在元素节点之间按照特定的顺序传播,这个传播过程即DOM事件流。DOM事件流分为三个阶段:捕获阶段、当前目标阶段和冒泡阶段。事件冒泡即事件开始是由最具体的元素接受,然后逐级向上传播到DOM最顶层节点的过程。on开头只能在冒泡阶段调用事件处理程序,addEventListener既可以在捕获阶段也可以在冒泡阶段调用事件处理程序。

7、谈一谈事件委托的原理?

不是每个子节点单独设置事件监听器,而是事件监听器设置在其父节点上,然后利用冒泡原理影响设置每个子节点。事件委托只操作了一次DOM,提高了程序的性能。

8、什么是事件对象?具体有哪些?

事件发生后,跟事件相关的一系列信息数据的集合都放到这个对象里面,这个对象就是事件对象(event),它包含很多属性和方法。当触发事件后,事件对象会被系统自动创建,并依次传递给事件处理函数。具体的有鼠标事件对象和键盘事件对象。

9、什么是BOM?

10、怎么理解任务队列?

1、“任务队列”是一个事件的队列(也可以理解成消息的队列),主线程读取“任务队列”,即读取里边有哪些事件。
2、“任务队列”是一个先进先出的数据结构,排在前边的事件,优先被主线程读取。
3、所有的任务可以分为两种,一种是同步任务,另外一种是异步任务。同步任务指的是,在主线程上,排队执行的任务,只有前一个任务执行完毕,才能执行后一个任务;异步任务指的是,不进入主线程,而进入“任务队列”(task queue)的任务,只有“任务队列”通知主线程,某个异步任务可以执行了,该任务才会进入主线程执行。
4、JS执行机制是:
(1) 所有同步任务都在主线程上执行,形成一个执行栈。
(2)主线程之外,还存在一个“任务队列”(task queue),只要异步任务有了运行结果,就在“任务队列”中放置一个事件。
(3)一旦“执行栈”中的所有同步任务执行完毕,系统就会按次序读取“任务队列”中的异步任务,于是被读取的异步任务结束等待状态,进入“执行栈”,开始执行。
(4) 主线程不断重复上边的第三步。
5、主线程从“任务队列”中读取事件,这个过程是循环不断的,所以这种运行机制又称为事件循环。

11、mouseover和mouseenter的区别?

当鼠标移动到元素上会触发mouseover和mouseenter事件。但是mouseenter没有冒泡,所以只有经过自身盒子才会触发,但是mouseover有冒泡,经过自身盒子和子盒子时都会触发事件。

12、什么情况下会触发load事件?

JavaScript基础
persisted 返回的是true 表示这个页面是从缓存取过来的页面