问答详情
源自:6-11 编程练习

能帮我看下哪出错了吗

能帮我看下哪出错了吗

提问者:Lshah 2016-03-22 21:03

个回答

  • 蝎子126
    2016-03-23 18:07:39
    已采纳

    Q1:放在外面为什么结果是 undifined呢?

    因为html的执行顺序是从上至下的。你的  <script></script>是在上面的,

    所以你在执行var a=parseInt(document.getElementById("txt1").value)时;页面中的input还没有加载出来。获得不到这个元素,所以显示为undifined而不是NaN;

    你可以自己测试一下:

    (1)把<script>代码</script>放在<head>里。显示为undifined。

    (2)把<script>代码</script>放在页面最下面<body>里。显示为NAN;所以一般推荐将JS代码放在下面。

    Q2:但是为什么要放在函数里面呢?

        如果放在外边,页面加载完成后就已经执行了

       var a=parseInt(document.getElementById("txt1").value);
       var b=parseInt(document.getElementById("txt2").value);
       var c=document.getElementById("select").value;
       var d="";

       而此刻你的输入框里还是空的。所以a =NaN,b=NaN;

       当你输入数字时,  完点击“=”,调用count()方法时。a,b,的仍为NaN;

       放在里面,点击“=”时,才获取a,b输入框的值。所以就不为NaN ,就正确了啊。

    这样说明白了吗?


  • Lshah
    2016-03-22 21:06:51

    我知道哪出错了,

    var a=parseInt(document.getElementById("txt1").value);
       var b=parseInt(document.getElementById("txt2").value);
       var c=document.getElementById("select").value;
       var d="";

    应该放在函数里面,但是为什么要放在函数里面呢?放在外面为什么结果是 undifined呢?