文章目录

1、初始化未经声明的变量,总是会被创建为一个全局变量(在严格模式下会报错)
2、全局变量不能通过delete操作符删除,而直接在window对象上的定义的属性可以
3、window.close()方法可以关闭打开的新窗口,但仅限于关闭通过 window.open()打开的窗口;
4、setTimeout()、clearTimeout()、setInterval()、clearInterval()的讲解
(1)超时调用 setTimeout() 和取消超时调用 clearTimeout()的代码都是在全局作用域中执行的,因此 this 的值在严格模式下指向 window 对象,在严格模式下是 undefined
(5)间歇调用的方法 setInterval() 和取消间歇调用 clearInterval(),取消间歇调用 clearInterval()的重要性远远高于取消超时调用 clearTimeout(),因为在不加干涩的情况下,间歇调用将会一直执行到页面卸载;
建议:尽量使用超时调用来模拟间歇调用,因为在使用间歇调用时可能会出现后一个间歇调用会在前一个间歇调用结束之前启动,因此最好在定义前取消定时器即:

1
2
3
4
5
6
var timer = null;
clearInterval( timer );
timer = setInterval(function() {
console.log("ok");
},2000);

clearInterval( timer );

5、由于 float 是javascript中的保留字,因此不能做属性名;
6、在标准模式中,所有的度量值都需指定一个度量单位,但在混杂模式下,可以不指定度量单位,建议最好始终都指定度量单位;
7、 addEventListener() 、removeEventListener()
(1)通过 addEventListener() 添加的时间只能通过 removeEventListener() 移除;移除时传入的参数需要与添加时间处理程序时的参数相同,
这也就说明通过 addEventListener() 添加的匿名函数将无法移动。
eg:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var myBtn = document.getElementById('btn');
myBtn.addEventListener('click', function() {
console.log('ok');
}, false); //为 false 在冒泡阶段调用事件处理程序
myBtn.removeEventListener('click', function() {
console.log('ok');
}, false); //无效


var myBtn = document.getElementById('btn');
var handler = function() {
console.log('ok');
}
myBtn.addEventListener('click', handler, false); //为 false 在冒泡阶段调用事件处理程序
myBtn.removeEventListener('click', handler, false); //有效

(2)通过addEventListener()添加的事件处理程序会在其所属的作用域内运行
注:IE9+,Firefox,Safari,chrome,opera均支持DOM2级事件处理程序,IE8-使用 attachEvent(),detachEvent(),接收两个参数(
因为IE8-支持事件冒泡)
8、attachEvent() 、detachEvent()
(1)使用 attachEvent()添加的事件处理程序会在全局作用域中运行
(2)使用 attachEvent()添加的事件处理程序不是以添加它们的顺序执行的,而是以相反的顺序被触发
(3)移除与上述相同
注:支持IE事件处理程序的浏览器有IE和Opera
9、

文章目录