BOM笔记

1、定义全局变量与window对象上定义属性还是有点差别的:

1.1全局变量不能通过delete操作符删除,而直接在window对象上定义的属性可以。
IE8及更早的版本,遇到delete删除window属性语句时报错,IE9以后的版本不会
delete删除一个属性或方法是,成功返回true,失败返回false。

1.2如果访问未声明的变量会抛出错误,但是访问未声明的属性时undefine,因为在访问的时候,对象会隐式创建该属性

2、窗口关系及框架

2.1 如果页面中包含框架(即framset引入的页面),它们相当于一个页面镶嵌在另一个页面中,每个页面都有属于自己的window对象

top:始终指向的是最高框架
parent:始终指向当前框架的上层框架
例,
top.fames[0]:框架的顺序是从左往右,从上往下的方向数的。
window.parent:当前框架的上层框架
window.parent.parent…
每个框架中定义的全局变量会自动成为框架中window对象的属性,每个window对象都 有构造函数,一一对应,但不相等。

3、定时器setTimeout(),setInterval().

3.1 setTimeout(函数,时长),表示经过一段时间执行函数
第一个参数可以传字符串,可能会导致性能损失,所以不建议。
第二个参数等待多长时间的毫秒数,JavaScript有个任务队列,代码指令会按照顺序添加到队列顺序执行,setTimeout的第二个参数告诉Javascript再过多长时间把当前指令添加到任务队列中。队列如果为空会直接执行,否则等队列中前面的代码执行完了以后再执行。
返回值:返回的是一个ID,可以使用一个变量接受,通过clearTimeout(ID),取消或清除定时器
3.2 setInterval(函数,时长),表示每过一段时间执行一次函数
该定时器会一直执行,如果不加以干涉的情况下,会一直执行到页面卸载,该函数的返回值也是一个ID,可以通过clearInterval(ID),取消定时器

但是该定时器缺点是**:当任务队列不为空时,指令还没有执行,定时器就开始定时。所以如果要求精准度比较高的话建议使用setTimeout这种方法代替setInterval
例子:

var num=0;
var max=10;
function interval(){
	num++;
	if(num<max){
		setTimeout(interval,500);
	}else{
		alter("done");
	}
}
setTimeout(interval,500);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值