<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
var a;
a = setTimeout(alert("5s"),5000)
</script>
</head>
<body>
</body>
</html>
为什么js中的setTimeout()没有延迟5s弹框,而是直接弹框
这样子写
var a ;
a=setTimeout("alert('5s')",5000)
以前还没注意这个问题,setTimeout的第一个参数表示推迟执行函数的指针,alert("5s")
不会被认为是函数的指针或匿名函数的指针,会被直接输出。setTimeout("alert("5s")",5000)这样是可以的,加上双引号后会被认为是一个
匿名函数。上述原因都是自己分析的,希望能对你有所帮助。
setTimeout() 方法
语法
window.setTimeout("javascript 函数",毫秒数);
setTimeout() 方法会返回某个值。在上面的语句中,值被储存在名为 t 的变量中。假如你希望取消这个 setTimeout(),你可以使用这个变量名来指定它。
setTimeout() 的第一个参数是含有 JavaScript 语句的字符串。这个语句可能诸如 "alert('5 seconds!')",或者对函数的调用,诸如 alertMsg()"。
第二个参数指示从当前起多少毫秒后执行第一个参数。
提示:1000 毫秒等于一秒。
实例
等待3秒,然后弹出 "Hello":
setTimeout(function(){alert("Hello")},3000);
var a;
a = setTimeout(alert("5s"),5000)
你这个代码是将alert的返回值作为setTimeout要执行的代码了
==>
a = setTimeout(function(){alert("5s")},5000)