深入setTimeout和setInterval

Author : lovecicy

在JS中,我们经常需要使用到延时执行的情况,能实现这个功能的JS方法有两个,分别是setTimeout和setInterval。相信这两个方法大家一定经常用到,那么今天我们就来八一八这两个方法吧,可不要觉得这两个方法很简单哦,看完以后相信你一定有所收获。 一、定义 虽然这里我们只放了setTimeout和setInterval两个方法,其实还有两个与之对应的清除延时执行的方法:clearTimeout和clearInterval,它们两个接收一个ID,分别由setTimtout和setInterval方法返回。 接下来我们来看看Mozilla开发者网站给出的定义: setTimeout: Calls a function or executes a code snippet after a specified delay. setInterval: Calls a function or executes a code snippet repeatedly, with a fixed time delay between each call to that function. Retu[Read More]

standard

setTimeout疑惑

Author : lovecicy

其实对于这个函数的用法,一直很模糊。 MDN的文档中,setTimeout方法有两种语法: 1. setTimeout(func,delay,arg1,arg2…) 2. setTimeout(code,delay) 返回值是一个ID,可以在clearTimeout中作为参数,用于取消这个延时函数。 对于第二种语法,其实并不推荐,原因和eval()相同。 因此来说说第一种语法,func参数为要执行的函数名,不能带括号,除非你知道自己在干嘛,也不能用引号包围,否则就变成第二种语法了;delay参数为需要延迟的毫秒数;后面的参数为传递给func的参数,但是在IE9以前的浏览器中不支持这种语法,所以更多的时候只有两个参数。 在来说说在chrome下发现的问题: 我要让下面这段代码延时执行: $(‘#test’).addClass(‘test’); 所以我写了这样一段代码: setTimeout($(‘#test’).addClass(‘test’),1000); 照例说哪个语法都不符合,但是在IE8下,它能正常执行并且不报错。在FF下,它也能执行,但是会报错:SyntaxError: m[Read More]

standard