1.有一种捕获用户操作的专门类研究,根据统计信息来针对用户的喜好来制定软件开发。
2.就可以通过焦点事件来捕捉用户的操作。捕捉用户的习惯。
3.IE的focusin和focusout方法因为可以冒泡,被DOM3级采纳为标准方式。
4.focus和blur不冒泡。
5.DOM3级鼠标点击事件的feature名是”MouseEvent“,而非”MouseEvents“。
6.clickX和clickY可以表示点击事件发生时,事件发生的位置,但不一定是鼠标在页面上的位置,因为这些距离里面不包含页面滚动的距离。是在视口中距离。
7.而在页面中的距离是pageX和pageY。包含屏幕的滚动距离。
8.还有一个屏幕坐标位置,相对于电脑屏幕的距离。
9.那些只有IE才有的属性定义,一般不会使用它们,不然程序的适配性不强。
10.把函数定义放在利用匿名函数构造的私有作用域中,从而这个函数定义就不会干扰全局作用域了。
11.针对移动设备,没用鼠标,所以点击事件比较特殊。首先,不支持双击事件自定义,默认为放大画面。而点击元素会触发mousemove事件。而可单机的元素是指那些单击可产生默认操作的元素(如链接),或者那些已经指定了onclick事件处理程序的元素。还有那些手指滑动的事件,会触发mousewheel和scroll事件。
12.注意实现网页的无障碍访问时,要注意多使用键盘去触发click事件。应该说只有这个事件可以通过键盘触发。要充分利用这个特点,给残疾人带来方便。
13.屏幕阅读器无法触发mousedown事件。
14.keydown是按下任意键时触发,keypress是按下字符键时触发。
15.在文本插入文本框之前会触发textInput事件。
16.都存在着对键盘值的编码,以便判断和输出结果。注意分号的编码在不同浏览器中的区别。
17. DOM3级事件的键盘事件不再包含charCode属性,而是包含两个新属性:key(按下键的文本字符串)和char。不推荐使用。
18.DOM3级中的textInput事件与DOM0级中的textInput事件的区别:
1.任何获得焦点都可以触发keyprest事件,但只有可编辑区域才能触发textInput事件;2.textInput事件只会在用户按下能够输入实际字符的键时才会被触发,而keypress事件则在按下那些能够影响文本显示的键时也会被触发(例如:退格键)。
19.利用data属性可以拿到textInput输入的内容。
20.某些移动设备中的键盘事件:有一些按键也是编码了的,也可以触发事件;ios和安卓在使用屏幕键盘时会触发键盘事件。
21.复合事件:针对检测和处理这种输入而设计的,就是输入在物理键盘中无法输入的字符,通常是IME场景,需要同时按住几个键。
21.变动事件(DOM2级 and DOM3级):就是DOM结构变化时,会触发的一些事件。
22.如果移除DOM结构中的元素:一般是先触发DOMNodeRemoved、再触发DOMNodeRemovedFromDocument、再触发DOMSubtreeModified。
23.Promise、Vuex、网络请求封装。
24.给文件夹起别名:webpack,配置文件里面配置resolve里面的alias,也就是别名,后面就可以直接使用这个名字了。但是记得在DOM中使用别名时,要加上~。只有Vue3可以利用已经起好的别名另起别名。
25.ES6中的特性——Promise:异步编程的解决方案。网络请求的场景下。如果网络不通畅,那么同步就会发生阻塞。所以启用异步,不阻塞其他执行。通过回调获得请求结果。
26.回调地狱:回调中有回调,形成循环调用。
27.一旦在Promise中调用resolve(),就会去调用then()。一旦涉及到网络编程,都给它添加到一个new Promise里面,这叫链式编程。
28.new Promise之后,就会在构造函数里面保存一些状态信息、执行传入的函数,在执行传入的回调函数时,会传入两个参数,resolve和reject,本身也是函数。前者是成功时执行then,后者是失败时,执行catch。
29.promise就是让我们的代码变得优雅了,结构变得清晰了,便于维护。