JavaScript之setInterval() 函数
定义和用法
setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。
setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。
语法
setInterval()函数的语法如下:
setInterval ( code, milliseconds[, args...] )
参数 描述
code 需要执行的函数或js代码
milliseconds 执行函数或代码的间隔时间,单位为毫秒
args 可选参数用于给被调用的函数传递参数,参数可以有多个
返回值
setInterval()函数将返回一个标识符 ID,这个 ID 是唯一的(一般是整数,从 1 开始,每调用一次 setInterval() 就加 1)。
如果需要 setInterval() 执行的函数或代码尚未执行,我们可以通过 clearInterval() 函数来取消该执行操作,clearInterval() 需要接收一个参数,这个参数就是 setInterval() 返回的标识符ID。
如果参数code执行的是一个函数则可以直接使用函数名称或者匿名函数作为参数。如果函数需要参数,我们可以通过setInterval()的可选参数为其传递相应的参数。
//该函数不需要参数
function test(){
alert("测试");
}
// 每隔5秒钟就弹出提示信息"测试"。
setInterval(test, 5000); // 使用匿名函数作为参数,每隔5秒钟就输出控制台信息"测试2"。
setTimeout(function(){
console && console.log("测试2");
}, 5000); // 该函数需要两个参数
function sayHello(name, age){
alert("我叫" + name + ",今年" + age + "岁!");
}
//每隔5秒钟就弹出提示信息"我叫CodePlayer,今年18岁!"。
setInterval(sayHello, 5000, "CodePlayer", 18);
我们可以使用clearInterval()函数来取消setInterval()设定的定时操作。
function test(){
alert("测试");
}
// 每隔5秒钟就弹出提示信息"测试"。
var intervalID = setInterval(test, 5000);
// 取消该定时设置
clearInterval(intervalID);
此外,请一定注意:setInterval()的定时代码是在全局作用域下执行的,因此你不能在定时代码中调用某些局部变量,否则可能会报错。
// 以下是错误的用法,setInterval的定时代码无法调用局部变量site
function foo(){
var site = "CodePlayer";
setInterval('alert(site);', 5000);
}
foo(); var x = 15;
function bar(){
var x = 18;
setInterval('alert(x);', 5000); // 15
}
// 由于setInterval的定时代码是在全局作用域下执行的,因此这里的x为15
bar();
你可以通过以下方法来间接解决上述作用域问题:
// 省略var修饰符,使用全局变量代替局部变量
function foo1(){
site = "CodePlayer 1";
setInterval('alert(site);', 5000);
}
foo1(); // 不使用变量,直接传递变量的值
function foo2(){
var site = "CodePlayer 2";
setInterval('alert("' + site + '");', 5000);
}
foo2(); // 延长作用域链,使其能够访问到该函数作用域
function foo3(){
var site = "CodePlayer 3";
setInterval(function(){
alert(site);
}, 5000);
}
foo3(); // 调用指定的函数,并给函数传递相应的参数
function callback(msg){
alert(msg);
}
function foo4(){
var site = "CodePlayer 4";
setInterval(callback, 5000, site);
}
foo4();
JavaScript之setInterval() 函数的更多相关文章
- JavaScript中setInterval函数应用常见问题之一(第一个参数不加引号与加引号的区别)
学过JavaScript 脚本语言的都应该接触过setInterval 函数.如何使用我想大家都知道,但是有时候对于刚刚接触JavaScript的朋友来讲,还是会在使用的时候碰到这样或那样的问题而感到 ...
- 【JavaScript】使用setInterval()函数作简单的轮询操作
轮询(Polling)是一种CPU决策怎样提供周边设备服务的方式,又称"程控输出入"(Programmed I/O). 轮询法的概念是.由CPU定时发出询问.依序询问每个周边设备是 ...
- 什么是setTimeout函数和setInterval函数?
我们一般在浏览网页的时候,一般都会有图片轮播等,一些比较好玩的特效,接下来我就给大家讲讲这俩个函数! 一setTimeout函数和setInterval函数的语法以及应用 1.setTimeout函数 ...
- javascript(定时函数)
一setTimeout函数和setInterval函数的语法以及应用 1.setTimeout函数 定义和用法:setTimeout()方法用于在指定的毫秒数后调用函数或计算表达式. 语法:setTi ...
- 浅谈setTimeout函数和setInterval函数
前几天学了js,看到了两个非常有趣的函数,他们分别是setTimeout函数和setInterval函数,这两个函数能使网页呈现非常一些网页中比较常见的效果,比如说图片轮播,等一些非常好玩的效果.下面 ...
- Javascript之回调函数(callback)
1.回调函数定义: 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数.回调函数不是由该函数的实现方 ...
- JavaScript高级之函数的四种调用形式
主要内容 分析函数的四种调用形式 弄清楚函数中this的意义 明确构造函对象的过程 学会使用上下文调用函数 了解函数的调用过程有助于深入学习与分析JavaScript代码. 本文是JavaScript ...
- JavaScript中SetInterval与setTimeout的用法详解
setTimeout 描述 setTimeout(code,millisec) setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式. 注:调用过程中,可以使用clearTimeou ...
- JavaScript中的函数:闭包,this,高阶函数
一.函数基本理论 function compare(val1,val2){ return val1 - val2; }var result = compare(5,10); 1,函数的定义没什么意义, ...
随机推荐
- 再谈System.arraycopy和Arrays.copyOf
之前转载过一篇博文,介绍过这两个方法,今天想要再次详细的了解一下. public static native void arraycopy(Object src, int srcPos, Object ...
- 「LibreOJ β Round #4」求和
https://loj.ac/problem/528 1 , d =1 μ(d)= (-1)^k , d=p1*p2*p3*^pk pi为素数 0 ...
- 分块+deque维护 Codeforces Round #260 (Div. 1) D. Serega and Fun
D. Serega and Fun time limit per test 4 seconds memory limit per test 256 megabytes input standard i ...
- 从零搭建SSM框架(三)SSM框架整合
整合思路 1.Dao层: Mybatis的配置文件:SqlMapConfig.xml 不需要配置任何内容,需要有文件头.文件必须存在. applicationContext-dao.xml: myba ...
- 【BZOJ】3495: PA2010 Riddle 2-SAT算法
[题意]有n个城镇被分成了k个郡,有m条连接城镇的无向边.要求给每个郡选择一个城镇作为首都,满足每条边至少有一个端点是首都.n,m,k<=10^6. [算法]2-SAT,前后缀优化建图 [题解] ...
- 认识单点登录cas
么是单点登录?单点登录全称Single Sign On(以下简称SSO),是指在多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录与单点注销两部分 1.登录 相比于单 ...
- Unity下实现弹簧骨骼(Spring Bone)
关于这个效果的名称,我一直没找到一个比较正式的说法.Spring Bone这个说法是来自于Anima2D这个插件中的一个演示用的脚本,我直接译成弹簧骨骼. 一般常见于对人物的头发的模拟上. 当然也可以 ...
- VC拷贝字符串到剪切板
] ="中华人民共和国"; DWORD dwLength = ; // 要复制的字串长度 HANDLE hGlobalMemory = GlobalAlloc(GHND, dwLe ...
- DIDM源码分析
DIDM源码分析 版本来源:GitHub上Opendaylight DIDM项目 参考资料来源:DIDM:Developer Guide 概述 DIDM是设备标识与驱动管理(Device Identi ...
- 安装Https证书
安装证书 IIS 6 支持PFX格式证书,下载包中包含PFX格式证书和密码文件.以沃通证书为例: 文件说明: 1. 证书文件214083006430955.pem,包含两段内容,请不要删除任何一段内容 ...