13.1 JS和HTML的交互式如何实现的?
通过事件实现的
13.2什么是事件流?
描述的是从页面中接收事件的顺序。
13.3什么是事件冒泡?
事件开始时由最具体的元素接收,然后逐级向上传播到较为不具体的节点;
13.4事件捕获的目的是?
在事件到达预订目标之前捕获它
13.5DOM2级规定事件流三阶段是?
事件捕获阶段、处于目标阶段和事件冒泡阶段。
13.6什么是事件?
用户或浏览器自身执行的某种动作。
13.7在HTML中指定事件处理程序的缺点有?
一是存在时差;二是作用域链在不同浏览器会导致不同的结果;三是HTML与JS代码紧密耦合;
13.8 DOM 2级事件定义的两个方法和参数是?
addEventListener()和removeEventListener():要处理的事件名、作为事件处理程序的函数和一个布尔值(true表示在纱布或阶段调用事件处理程序,false表示在冒泡阶段调用事件处理程序);
13.9使用DOM 2级方法添加事件处理程序的好处是?
可以添加多个事件处理程序。
13.10为何多数时候,将事件处理程序添加到事件流的冒泡阶段?何时添加到捕获阶段?
因为这样可以最大限度地兼容各种浏览器;
只在需要在事件到达目标前截获他的时候将事件处理程序添加到捕获阶段。
13.11IE中使用attachEvent与使用DOM 0级方法的主要区别是?
事件处理程序的作用域,前者会在全局作用域,后者会在元素作用域内运行。
13.12使用addEventListener()和attachEvent()添加的匿名函数共同存在的问题是?
不能移除
13.13事件对象包含什么?
事件元素、类型和其他与特定事件相关的信息。
13.14如何理解事件对象的存活期?
在事件处理程序执行期间存在,执行结束就被销毁。
13.15web浏览器中的事件类型有?
UI事件、焦点、鼠标、滚轮、文本、键盘、合成、变动和变动名称等事件。
13.16为何在JS中添加到页面上的事件处理程序数量将直接关系到页面的整体运行性能?
一是函数都是对象,对象会占内存,内存中对象越多,性能越差;
二是必须制定所有事件的处理程序而导致的DOM访问次数,会延迟整个页面的交互就绪时间;
13.17从利用好事件处理程序的角度出发,有什么方法可以提升性能?
限制数量、事件委托、移除事件处理程序
14.1获取<form>元素引用的方式有?
一是看成与其他元素一样,使用getElementById等方法获取;
二是通过document.forms获取页面所有的表单;
14.2提交表单可能出现的最大问题是?如何解决?
重复提交表单;一是第一次提交表单后就禁用提交按钮;二是利用onsubmit事件处理程序取消后续的表单提交操作。
14.3为何在处理文本框的值时,最好不要使用DOM方法?
对value属性所做的修改,不一定会反映在DOM中。
14.4表单序列化在什么场景下使用最多?
使用Ajax请求
15.1出现在<canvas>元素开始和结束标签中的内容何时显示?
在浏览器不支持<canvas>元素时显示。
15.2在使用<canvas>元素之前需要干啥?
检测getContext()方法是否存在。