1、setTimeout调用的方式有两种:

//传函数
setTimeout(function () {
  alert("hhhhh");
}, 1000);
//传递字符串
setTimeout("alert('hhhhh')", 1000);

两种写法的效果都是:定时1000ms后弹出hhhhh

2、取消调用:

setTimeout()会返回一个数值id,这个id为被定时代码段的唯一标识符,可以用它来取消尚未执行的调用。通过clearTimeout(具体id标识符)方法实现::

var idd = null;
idd = setTimeout(function () {
    alert("hhhhh")
}, 1000);
clearTimeout(id);

3、执行顺序问题:

JS是一个单线程序的解释器,一段时间内只能执行一段代码,所以各段代码存在执行顺序问题:

f();
function f () {
               console.log(1);
               setTimeout(function () {console.log(2)}, 1000);
               setTimeout(function () {console.log(3)},0)
               setTimeout(function () {console.log(4)}, 0);
               console.log(5);
  };

输出如下:(设置延迟时间为0的也算有延迟时间,直到没有设置延迟的全部代码全部执行完,才开始执行有延迟的。所以“3”在“5”后面,“3”和“4”的延迟时间一样,所以按顺序先“3”后“4”)

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐