setTimeout和setInterval的区别
setTimeout()定义和用法
关于setTimeout方法的介绍
定义
setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。
语法
setTimeout(code,millisec)
参数:
code:必需。要调用的函数后要执行的 JavaScript 代码串。
millisec: 必需。在执行代码前需等待的毫秒数。
提示
setTimeout() 只执行 code 一次。如果要多次调用,请使用 setInterval() 或者让 code 自身再次调用 setTimeout()。
function test(){ alert("test"); } //使用方法名字执行方法 var t1 = window.setTimeout(test,1000); var t2 = window.setTimeout("test()",3000);//使用字符串执行方法 window.clearTimeout(t1);//清除定时器
setInterval()定义和用法
//实时刷新时间单位为毫秒 setInterval('refreshQuery()',8000); /* 刷新查询 */ function refreshQuery(){ $("#mainTable").datagrid('reload',null); }
业务场景
- setTimeout用于延迟执行某方法或功能
- setInterval则一般用于刷新表单,对于一些表单的假实时指定时间刷新同步
settimeout传参数的几种方法,直接函数句柄调用传参会导致settimeout失效:
1)字符串调用传参
function test(name) {
alert('hello' + ' ' + name);
}
let param = 'Jack';
setTimeout('test(param)',1000);
2)将函数调用放在一个匿名函数里直接传参
function test(name) { alert('hello' + ' ' + name); } let testName='assistant' setTimeout(function () { test(testName); }, 1000); //可以获取到外层参数
3)匿名函数或函数句柄调用可以通过settimeout传参
setTimeout( function(value1,value2){ console.log(value1+"+"+value2); console.log(value1+value2)},2000, 1,2)