发表于: 2017-02-27 01:44:21
0 1345
今天完成的事情:
完成了几个关于js基础编码的任务;
看了js高程中的BOM、客户端检测、DOM;
复习了js定时器;
明天计划的事情:
学习SASS;
做些基础任务;
看es6;
遇到的问题:
暂无;
收获:
setInterval()方法并非在指定时间后立刻执行,而只是在指定时间后将函数加入队列,同样是多个参数,执行的语句或函数、延迟的事件、函数的参数。默认时间是5ms,但是根据HTML5标准,推迟执行的时间,最少是5ms,如果小于这个值,会被自动增加到5ms。
主要问题在于某些间隔会被跳过、多个定时器代码之间的间隔可能会比预期的小。假设,某个onclick事件处理程序使用了setInterval()设置了一个200ms间隔的重复定时器。如果事件处理程序花了300ms的时间完成,同时定时器代码也花了差不多的事件,就会同时出现跳过间隔切连续运行定时器的代码的情况。
setTimeout()会返回一个数值ID,表示超时调用,这个超时调用ID是计划执行代码的唯一标识符,可以通过将他传入clearTImeout()来取消超时调用。
超时调用的代码都是在全局作用域中执行的,因此函数中的this的值在非严格模式下都指向window对象,在严格模式下是undefined
setTimeout()可以带多个参数,执行的语句或函数、延迟的时间、函数的参数(IE9以上)
可以使用setTimeout调用函数本身来实现setInterval的效果:
评论