javascript无法正常工作

时间:2017-07-22 07:19:45

标签: javascript html

我有一个简单的JavaScript代码,我不知道为什么它不起作用。代码是:

<!doctype html>
<html>
  <head>
    <script>
      function do_something() {
        alert(a);
        var theBody = document.getElementsByTagName("body")[0];
        var theImg = document.createElement("img");
        var a = 1;
        var count = 0;
        for (var i = 0; i < 10; i++, count++) {
            if (i == 5) continue;
            if (count == 3) {
                count = 0;
                a--;
            } else {
                a++;
            }
            if (i > 7) break;
        }
        alert(a);    
      }
    </script>
  </head>
  <body onload="do_something()">
    
  </body>
</html>
但是它没有显示“a”的值,所以也许它是身体上载的问题?感谢。

5 个答案:

答案 0 :(得分:1)

您的函数do_something()未定义,因为generic:/ $ ifconfig lo Link encap:UNSPEC inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope: Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:4 errors:0 dropped:0 overruns:0 frame:0 TX packets:4 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:248 TX bytes:248 eth0 Link encap:UNSPEC inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0 inet6 addr: fe80::5054:ff:fe12:3456/64 Scope: Link inet6 addr: fec0::5054:ff:fe12:3456/64 Scope: Site UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1 errors:0 dropped:0 overruns:0 frame:0 TX packets:4 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:110 TX bytes:316 generic:/ $ ping 10.0.2.15 PING 10.0.2.15 (10.0.2.15) 56(84) bytes of data. 64 bytes from 10.0.2.15: icmp_seq=1 ttl=64 time=10.8 ms ^C --- 10.0.2.15 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 31ms rtt min/avg/max/mdev = 10.829/10.829/10.829/0.000 ms generic:/ $ ping 10.0.2.2 connect: Network is unreachable generic:/ $ ping 10.0.2.1 connect: Network is unreachable generic:/ $ ping 8.8.8.8 connect: Network is unreachable var a=1之后函数中的某些非法字符会替换为';' 您还需要在使用之前初始化a,否则将给出a--

undefined

答案 1 :(得分:0)

您在定义它之前使用'a'。变量声明被提升,但“a”最初没有赋值。

答案 2 :(得分:0)

将函数直接放在div,tag或其他内容之后:

<!doctype html>
<html>
  <head>
    <script>
      function do_something() {
        alert(a);
        var theBody = document.getElementsByTagName("body")[0];
        var theImg = document.createElement("img");
        var a = 1;
        var count = 0;
        for (var i = 0; i < 10; i++, count++) {
            if (i == 5) continue;
            if (count == 3) {
                count = 0;
                a--;
            } else {
                a++;
            }
            if (i > 7) break;
        }
        alert(a);    
      }
    </script>
  </head>
  <body>
      <script type="text/javascript">
          do_something();
      </script>

  </body>
</html>

答案 3 :(得分:0)

这是事实:

1)它在当地完美运作。

2)在jsfiddle中,你必须从javascript中删除onload选项。之后,它会正常工作。因为它创建了两个onload函数调用,它会产生错误。

/ - &GT;请在定义之前删除'a'的警告。

答案 4 :(得分:-1)

您正在尝试在声明<!doctype html> <html> <head> <script> function do_something() { var theBody = document.getElementsByTagName("body")[0]; var theImg = document.createElement("img"); var a = 1; alert(a); var count = 0; for (var i = 0; i < 10; i++, count++) { if (i == 5) continue; if (count == 3) { count = 0; a--; } else { a++; } if (i > 7) break; } alert(a);     } </script> </head> <body onload="do_something()"> </body> </html>之前提醒其值。因此,您将收到a错误。

检查下面的代码段。它会在第二个警报中提醒undefined的值。

a