MyFunction()未捕获参考错误

时间:2013-04-18 02:17:30

标签: javascript

错误:未捕获的ReferenceError:myFunction未定义

这是我的.js文件无效或调用我的HTML

function = myFunction() 
{
    var ret = "";
    for (var i = 15; i < 26; i++) 
    {
        ret += i + "  " + i*2 + "  " + i*3 + "\n";    
    }
    alert(ret);
}

这是我的HTML代码:

<!DOCTYPE HTML>
<html>

<head>
<script type="text/javascript" src="Test1.js"></script>

</head>

<body>

<h1> Exercise 4 - LAB 4  </h1>

<h2> Exercise 2.1 </h2>

<button type="button" onclick= "myFunction() "> Press Me </button>

</body>
</html>

错误:未捕获的ReferenceError:myFunction未定义

3 个答案:

答案 0 :(得分:5)

你走了:

var myFunction = function ()
{
    var ret = "";
    for (var i = 15; i < 26; i++)
    {
        ret += i + "  " + i*2 + "  " + i*3 + "\n";
    }
    alert(ret);
};

function = varName () {}是语法错误。你可以这样做:function varName () {}没有等号,或者你可以像我这样做。

在我们的一些海报上发出一些健康的警告之后,我应该指出这两种写作函数的方法有所不同。引用RobG:“函数foo(){}和var foo = function(){}之间没有实际区别;除了创建函数时,第一个被称为FunctionDeclaration,第二个被称为FunctionExpression。”在执行任何代码之前加载函数声明,因此您可以在任何地方(函数在文件中的位置之前或之后)调用它。但是,再次根据文件中的实际位置,如果在文件中的位置之前调用函数表达式,则会引发错误。 (然而,您可以通过声明稍后将分配给文件开头的函数表达式的变量来解决此问题。)

答案 1 :(得分:2)

function = myFunction() { /* body */ }

语法无效。你没有在控制台中收到错误吗?正确的语法是

function myFunction() { /* body */ }

myFunction = function() { /* body */ }

你也可以写:

somename = function myFunction()  { /* body */ };

但是,在这种情况下,名称myFunction的范围只是正文,它不是全局的。

答案 2 :(得分:0)

该功能的声明是错误的:
使用Javascript:

function myFunction() {
    var ret = "";
    for (var i=15; i<26; i++) {
        ret += i + "  " + (i*2) + "  " + (i*3) + "\n";    
    }
    alert(ret);
}

HTML

<html>
  <head>
    <script type="text/javascript" src="Test1.js"></script>
  </head>

  <body>
    <h1>Exercise 4 - LAB 4</h1>
    <h2>Exercise 2.1</h2>
    <input type="button" value="Press Me" onclick="myFunction()" />
  </body>
</html>