未捕获的参考错误:_______未定义

时间:2013-05-23 02:19:45

标签: javascript html html5

我是初学者,对Javascript和HTML都知之甚少,如果我的问题非常基本,请对不起。 我正在尝试编写一个基本网页,当点击一个按钮时,它将使用Javascript对数组执行某些操作,然后将结果打印到页面。

<!DOCTYPE html>
//error here
<html>
<head>
<title>Thursday's Homework</title>
<script>
    var problem1 = function() 
    {for (var i = 0; i <= 50; i += 5) {
        document.write(i + " ");
        }
    }   
    var myArray = []
    var problem2 = function()
        {for (var i = 0; i <= 9; ++i){
            myArray[i]
            }
        document.write(myArray)     
</script>
</head>
<body>
<center><h2><b> My Homework for Thursday<b></h2></center>
<p>This is my code for Problem 1:</p>
<input type="button" onclick = "problem1()" value="Does it work?">
//error here
<p>This is my code for Problem 2:</p>
<input type="button" onclick = "problem2()" value="Does it work?">
//error here
</body>
</html>

当我使用开发人员工具在Chrome中调试时,我收到三条错误消息: 在第1行之后:Uncaught SyntaxError:意外的输入结束 在第22行(​​第一个按钮)之后:未捕获的ReferenceError:未定义problem1 第24行(第二个按钮)后:未捕获参考错误:未定义问题2

我也想知道是否有更好的方式来显示输出而不是document.write,因为这使得每次都需要重新加载页面以查看下一个结果。

我是新人,所以如果这完全是创造这件事的错误方法,我表示歉意。如果是这样的话,请指出正确的方向。

更新: 我修复了语法错误,运行正常。我仍然想知道一种更好的方式来显示document.write的结果。我不太懂,所以如果你有建议,你能告诉我如何实施吗?

4 个答案:

答案 0 :(得分:2)

  

你在问题​​2之后错过了一个结束}。

这是造成此类错误的最常见原因。由于函数体未正确关闭,因此JS解释器中断,停止解析。然后其他东西试图引用一个未能解析的变量/函数并触发参考错误。

答案 1 :(得分:1)

我可以看到一些问题。

  1. 您在}之后错过了结束problem2
  2. = onclick =周围有空格。
  3. 你实际上并没有对myArray做任何事情。这似乎并非故意。
  4. 您的代码格式不清楚,以后可能会导致困难(我认为这部分导致了错误)。除非你有特别好的理由,否则你应该避免像{for这样的事情。而是在{
  5. 之后添加换行符

答案 2 :(得分:0)

  1. 关闭problem2();
  2. 的大括号
  3. 而不是document.write();你可以指定一个像

    这样的id

  4. 并在js中使用

    document.getElementById("abc").innerHTML=i+" ";
    

    更好更安全的编码使用jsLint ..

答案 3 :(得分:0)

至于你的第二个问题,你可以找到很多有用的Chrome和Firefox扩展程序,可以满足你的调试需求。

Chrome具有内部工具,例如“Web控制台”,可让您以变量形式查看变量。