21、事件
1)onmousemove 该事件会在元素中移动时被触发
2)事件冒泡:就是事件的向上传导,当后代元素上的事件被触发时,其祖先元素的相同事件也会被触发
3)大部分冒泡都是有用的,取消冒泡event.cancelBubbl = true;
4)事件委派:将事件统一绑定给元素的共同的祖先宏,当后代元素上的事件触发时,会一直冒泡到祖先元素,通过祖先元素的响应函数来处理事件
5)使用 对象.事件 = 响应函数 的形式只能同时为一个元素的一个事件绑定一个响应函数,不能绑定多的,如果有多个,则最后一个有效
6)addEventListenser(事件的字符串,回调函数,是否在捕获阶段触发事件);IE8及一下浏览器不支持:attachEvent(事件的字符串,回调函数)
7)当我们拖拽一个网页中的内容时,浏览器会默认去搜索引擎中搜索内容,此时会导致拖拽功能的异常,这是浏览篮默认行为,可以通过return false取消该默认行为,但是对IE8以下的浏览器不起作用。
8)鼠标滚轮:onmousewheel,火狐不兼容,火狐中:DOMMouseScroll,需要通过addEventListenser调用
9)键盘事件:按键按下:onkeydown,如果按着不放,事件会一直触发; 按键弹起:onkeyup;键盘事件一般都绑定给可以获取焦点的对象或者document对象;event.keyCode
22、BOM:浏览器对象
1)BOM可以使我们通过JS来操作浏览器,对象:Window、Navigator、Location、History、Screen,都是作为window对象的属性来使用的,也可以直接使用
2)Window:代表整个浏览器的窗口,同时也是网页中的全局对象
3)Navigator:代表浏览器的信息,通过该对象可以识别不同的浏览器,现在一般使用其属性userAgent来判断浏览器信息
4)Location:代表浏览器的地址栏信息,可以获取地址栏信息,操作浏览器跳转页面
5)History:代表浏览器的历史记录,可以通过该对象来操作浏览器的历史记录
6)Screen:代表用户的屏幕信息,可以获取到用户的显示器的相关信息
23、定时器
1)setInterval(回调函数, 间隔时间ms)定时调用,可以将一个函数每隔一段时间执行一次;返回一个Number类型的数字,用来左右定时器的唯一标识
2)clearInterval(定时器标识)关闭定时器
3)SetTimeout(回调函数, 延时时间ms)延时调用,只会执行一次
4)clearTimeout()关闭延时调用
24、类的操作
1)通过style属性来修改元素的样式,每修改一个,浏览器就会重新渲染一次页面,性能比较差;修改多的样式的时候不方便,不建议这样修改css的样式
2)可以通过修改class的属性来间接的修改样式,只需要修改一次,就可以同时修改多个样式,性能比较高
25、JSON
1)JSON就是一个特殊格式的字符串,可以被任何语言识别,并且可以转换成任意语言的对象,主要用于数据的交互
2)JSON中属性名必须加双引号,值只允许:字符串、数字、布尔值、null、对象、数组。分为:对象{}、数组[]
3)将JSON字符串转换为对象:JSON.parse(json字符串),返回值为对象
4)将对象转换为JSON字符串:JSON.stringify(对象),返回值为JSON字符串
5)JSON在IE7及以下浏览器中不支持,eval()可以将一段字符串当成JS代码执行,JSON字符串转换成对象:obj = eval(“(” + str + “)”)
6)eval不建议使用,性能差,并且有安全问题
7)如果要兼容IE7及以下浏览器,引入json2.js文件可以解决该问题