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,函数的定义没什么意义, ...
随机推荐
- 如何将下载的web工程导入到eclipse中使用
如果你是喜欢编程的,在你的开发工具中一定有许多项目,就像小编一样(PS:小编只想默默地装一X): 我们选中其中的一个项目,然后[Ctrl + C]复制,再[Ctrl + V]粘贴到桌面: 那么 ...
- bzoj 3209 bzoj1799 数位dp
3209: 花神的数论题 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 2267 Solved: 1040[Submit][Status][Disc ...
- 手脱EZIP v1.0
一.单步 1.载入PEID查壳 EZIP v1.0 2.载入OD,一上来就是一个大跳转,F8单步一直走 0040D0BE > $ /E9 jmp Notepad.004102DC ; //入口点 ...
- VS Code 配置删除左边单词快捷键(同Sublime 和 Atom)
VS Code 中删除一行的快捷键默认是 cmd + shift + k,或者使用简介 cmd + x,对于一个长期使用 Sublime 和 Atom 的程序猿来说,在VS Code 上删除行,特别是 ...
- HTML+CSS基础小笔记再整理
1. font的两个必须要写的:font-size 和 font-family text-indent 首行缩进(em)1em=一个文字大小 text-algin 对齐方式:left.center.r ...
- 树dp...吧 ZOJ 3949
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5568 Edge to the Root Time Limit: 1 Secon ...
- max-device-width和max-width的区别
比如用媒体查询响应输出@media (max-width: 767px),用谷歌浏览器手机测试插件显示并无变化,其实关键在于max-device-width和max-width,以下摘抄↓ max-d ...
- ④ 设计模式的艺术-04.抽象工厂(Abstract Factory)模式
抽象工厂模式 用来生产不同产品族的全部产品.(对于增加新的产品,无能为力:支持增加产品族) 抽象工厂模式是工厂方法模式的升级版本,在有多个业务品种.业务分类时,通过抽象工厂模式产生需要的对象是一种非常 ...
- 赶快收藏!16款最流行的 JavaScript 框架
下面为大家介绍 16款最流行的 JavaScript 框架,赶快收藏! 1. jQuery – Javascript框架 jQuery 是最流行的 JavaScript 框架,它简化了HTML 文档遍 ...
- 关于Http协议、ASP.NET 核心知识(2)
简介HTTP (对于http协议的描述我前部分有写,但基于保证文档独立完整性的原则,我再写一遍.反正又不花钱.) 这货的学名叫:超文本传输协议 英文名字:(HTTP,HyperText Transfe ...