为了账号安全,请及时绑定邮箱和手机立即绑定

javascript的函数问题

javascript的函数问题

fenkapian 2016-07-03 15:19:46
如下代码,为什么第一个函数也能正确运行呢?setInterval()函数为什么能被声明为一个变量呢? <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title></title> <script type="text/javascript"> var n = 0; function t() { document.title = n++; } var timer = setInterval("t()",1000); function h() { document.write(9); }    setTimeout(h(),1000); </script> </head> <body> </body> </html>
查看完整描述

3 回答

?
汉娜之眼

TA贡献42条经验 获得超27个赞


setInterval()函数是定时器,声明成一个变量是为了方便开启和关闭。

查看完整回答
4 反对 回复 2016-07-03
?
人笨嫌刀钝

TA贡献100条经验 获得超24个赞

声明称一个变量是为了可以清除计时器使其停止。

第二个函数写错了

setTimeout(h(),1000);

应该是

setTimeout("h()",1000);

或者

setTimeout(h,1000);


查看完整回答
反对 回复 2016-07-03
?
fenkapian

TA贡献18条经验 获得超1个赞


还有第二个函数,我打算载入页面一秒后在窗体上输出9,为什么一加载就输出了?

查看完整回答
反对 回复 2016-07-03
  • super_mb
    super_mb
    你想要在加载完页面后再输出9,需要把定时器放在window.onload中,意思是在页面加载完成后执行: window.onload = function(){ setTimeout(h,1000); }; 照你之前那样写,html文档还在解析的时候,js脚本也已经在执行了。所以你需要在文档加载完后再开启定时器。
  • llo蛋蛋oll
    llo蛋蛋oll
    还是你的h函数调用有问题,使用双引号或者是直接写函数名就ok了
  • 3 回答
  • 0 关注
  • 1572 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信