要接收超时调用id不能把var a;放在函数里吗

要接收超时调用id不能把var a;放在函数里吗

执行a=setTimeout("alert('1')",1000);后查a有错


<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

  <title>Document</title>

</head>

<body>

  <input type="button" value="后退">

  <script type="text/javascript">

    var btn=document.getElementsByTagName("input")[0];

    var a;

    btn.onclick=function(){

      a=setTimeout("alert('1')",1000);

    }

  </script>

</body>

</html>

正在回答

登陆购买课程后可参与讨论,去登陆

4回答

同学你好,意思是在控制台手动输入a吗?这样肯定是会报错的,a在函数中定义为局部变量,函数外面是拿不到的。如果想要看a的值,在函数中输出就好,如下

http://img1.sycdn.imooc.com//climg/5e7ede970985fef409650502.jpg

祝学习愉快!

  • 慕慕4335856 提问者 #1
    好的,明白了
    2020-03-28 14:57:44
好帮手慕星星 2020-03-28 10:29:56

同学你好,测试这两段代码a定义在函数外还是函数内都是可以的,并不会报错。

建议重新测试下,祝学习愉快!

  • 提问者 慕慕4335856 #1
    不是报错,是我在控制台输入a,然后回车,就出现行红色错误(把a的声明放在函数里)
    2020-03-28 10:37:27
  • 提问者 慕慕4335856 #2
    就是在控制台查a的值
    2020-03-28 10:38:03
提问者 慕慕4335856 2020-03-28 10:09:08

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

  <title>Document</title>

</head>

<body>

  <input type="button" value="后退">

  <script type="text/javascript">

    var btn=document.getElementsByTagName("input")[0];

    btn.onclick=function(){    

        var a;

      a=setTimeout("alert('1')",1000);

    }

  </script>

</body>

</html>


提问者 慕慕4335856 2020-03-28 10:08:15
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师