实验主题:

setInterval() 方法是 JS 中比较常用的一个方法。setInterval() 方法可以按照指定的周期 ( 毫秒 ) 来调用函数方法或计算表达式。

setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。

注:1000 毫秒 = 1秒

setInterval() 语法:

setInterval(code, millisec, lang)
参数 描述
code 必须。要调用的函数或要执行的代码串。
millisec 必须。周期性的执行或调用 code 之间的时间间隔。
lang 可选。JScript | VBScript | JavaScript

setInterval() 返回值:number值,是一个可以传递给 Window.clearInterval() 从而取消对 code 的周期性执行的值。测试代码:

var id = setInterval("foo1()",100);
alert(typeof(id));

setInterval() 作为 JavaScript 的一个计时事件,可以使代码在一个设定的时间内反复的执行多次,而不是在函数被调用后立即执行,这就是我们的计时事件。JavaScript 的另一个计时事件是 setTimeout(),他们两个都是 HTML DOM Window 对象的方法。

因为是 Window 的对象方法,所以加前缀 " window. " 对调用没有什么影响。另外,clearInterval() 也是 Window 的对象方法。

实验测试:

var foo1 = new Function("return alert('!!!')");//正常运行,而且刚开始时不会执行
setInterval(foo1,2000);//注意:Function不能写成function
var foo2 = new Function("alert('!!!')");//正常运行,而且刚开始时不会执行
setInterval(foo2,2000);
var foo3 = new Function(return alert('!!!'));//错误,抛出异常:"Uncaught SyntaxError: Unexpected token return"
setInterval(foo3,2000);
var foo4 = new Function(alert('!!!'));//刚开始运行一次,没有异常
setInterval(foo4,2000);
setInterval(function(){alert("!!!")},2000);//正常运行,而且刚开始时不会执行
setInterval(foo5(),2000);//刚开始运行一次,没有异常,执行一次的原因可能是载入过程中执行
function foo5(){
alert("!!!");
};
function foo6(){
alert("!!!");
};
setInterval(foo3(),2000);//注释掉这里不会运行函数,所以并不是载入脚本时自动执行的函数,而是被setInterval()调用执行了一次
setInterval("foo7()",2000);//正常运行,而且刚开始时不会执行
function foo7(){
alert("!!!");
};
function foo8(){//正常运行,而且刚开始时不会执行
alert("!!!");
};
setInterval("foo8()",2000);
setInterval("foo9",2000);
function foo9{//错误,抛出异常:"Uncaught SyntaxError: Unexpected token {"
alert("!!!");
};
function foo10(){//不会执行调用函数
alert("!!!");
};
setInterval("foo10",2000);
function foo11(){//正常运行,而且刚开始时不会执行
alert("!!!");
};
setInterval(foo11,2000);

实验总结:

要想通过 setInterval() 方法正常调用执行函数,有三种方法:

  • 通过 new 创建一个函数字面量,如 foo1
  • 声明一个函数,然后通过字符串的形式调用,如 foo7
  • 如果函数没有参数,则可以 foo11 的形式调用函数

附:如果需要停止计时事件,则需要这样:

var id = setInterval("foo1()",100);
function foo2(){
clearInterval(id);
}

停止计时事件需要给出被停止的事件的 id。

【JavaScript】关于 setInterval() 调用函数方法的一次实验的更多相关文章

  1. thinkphp模版调用函数方法

    原文:thinkphp模版调用函数方法 {变量|函数1|函数2|函数3=参数1,参数2,参数3,###} ###为第4个参数,代表变量替换为第4个参数 举例: {$username|substr=0, ...

  2. (二)学习JavaScript之setInterval和clearInterval方法

    参考:http://www.w3school.com.cn/jsref/met_win_setinterval.asp HTML DOM Window 对象 定义和用法 setInterval() 方 ...

  3. JS按照指定的周期来调用函数方法

    setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式. setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭.由 s ...

  4. setTimeOut(),和setInterVal()调用函数加不加括号!!!

    直接在ready中调用其他方法,会提示缺少对象的错误,解决方法如下: 方法1. 应用jQuery的扩展可以解决这个问题. $(document).ready(function(){ $.extend( ...

  5. 理解JavaScript的立即调用函数表达式(IIFE)

    首先这是js的一种函数调用写法,叫立即执行函数表达式(IIFE,即immediately-invoked function expression).顾名思义IIFE可以让你的函数立即得到执行(废话). ...

  6. source insight 如何建工程--以及快捷方式查找调用函数方法

    在source insight的view菜单中点出relation window,然后右键点relation window,选relation window properties,然后把view re ...

  7. 【javascript】onblur调用函数失效问题记录

    在处理页面上一个失焦效果时遇到了  xxxx is not a function 这样的错误,但函数确实有定义成功 ,经过测试发现是 id 值与函数名一致导致的问题,但是产生的原因没有找到详细的解释 ...

  8. pycharm中调用函数方法自动补全p,m,c,v,f分别是什么意思

    p:parameter 参数m:method 方法c:class 类v:variable 变量f:function 函数

  9. vue input,textarea失去焦点调用函数方法

    <input type="number" class="num" value="1" @blur.prevent="chan ...

随机推荐

  1. 从零开始的Lua宅[1]:编译Lua解释器

    Lua是一门神奇的脚本语言,游戏宅必备,懒人必备.Lua差多不是学起来用起来最简单的语言了,以至于简单到自身就是文档,自身就是配置文件.但是Lua的运行效率却是众多脚本中非常高的,据说仅次于V8爹下的 ...

  2. 投资20万研发的JFinal项目《旅游线路营销管理系统》准备公开课中

    18年初上线了一套旅游营销管理系统,目前给几个合作客户内测试用,是基于JFinal研发的一套旅游行业旅游线路批发零售系统(SAAS)版. 系统终端: PC后台管理分:总部.线路批发商.旅行社门店.个人 ...

  3. UIWebView全解

    是iOS内置的浏览器控件,可以浏览网页.打开文档等 能够加载html/htm.pdf.docx.txt等格式的文件 系统自带的Safari浏览器就是通过UIWebView实现的 MIME的英文全称是“ ...

  4. POJ 3017 Cut the Sequence (单调队列优化DP)

    题意: 给定含有n个元素的数列a,要求将其划分为若干个连续子序列,使得每个序列的元素之和小于等于m,问最小化所有序列中的最大元素之和为多少?(n<=105.例:n=8, m=17,8个数分别为2 ...

  5. Python2 和Python3 的区别

    print Python 2中的print语句被Python 3中的print()函数取代,这意味着在Python 3中必须用括号将需要输出的对象括起来. 在Python 2中使用额外的括号也是可以的 ...

  6. Dojo的define接口

    http://blog.csdn.net/lovecarpenter/article/details/53979717 第三种用法用的最多. 此接口用于定义模块: define([],function ...

  7. mysql crash cource 书中实例

    样例表 CREATE TABLE customers(  cust_id      int       NOT NULL AUTO_INCREMENT,  cust_name    char(50)  ...

  8. vue 使用lib-flexable,px2rem 进行移动端适配 但是引入的第三方UI组件 vux 的样式缩小,解决方案

    最近在写移动端项目,就想用lib-flexable,px2rem来进行适配,把px转换成rem但是也用到了第三方UI组件库vux,把这个引入发现一个问题就是vux的组件都缩小了,在网上找不到答案,最后 ...

  9. Win2008 Server配置PHP环境

    Win2008 Server配置PHP环境   阅读目录 创建一个网站 配置PHP环境 配置iis的“处理应用程序映射” 在配置PHP环境之前要先配置好IIS. 传送门-> Win2008 Se ...

  10. python 类的封装/property类型/和对象的绑定与非绑定方法

    目录 类的封装 类的property特性 类与对象的绑定方法与非绑定方法 类的封装 封装: 就是打包,封起来,装起来,把你丢进袋子里,然后用绳子把袋子绑紧,你还能拿到袋子里的那个人吗? 1.隐藏属性和 ...