JavaScript编码错误

时间:2015-09-05 12:15:24

标签: javascript

我第一次尝试学习JavaScript大约一个小时。我对HTML和PHP有很好的了解,我发现它有帮助。但我无法弄清楚这有什么问题。有人可以帮我纠正一下吗?

<script type="text/javascript">
    function GetArray() {
        var Item1 = prompt("Enter list item 1");
        Item1 += "\n";
        var Item2 = prompt("Enter list item 2");
        Item2 += "\n";
        var Item3 = prompt("Enter list item 3");
        Item3 += "\n";
        var List = new Array(Item1, Item2, Item3);
    }

    GetArray();

    for (i = 0; i < List.length; i++) {
        return List[i];
    }
</script>

5 个答案:

答案 0 :(得分:2)

返回仅在函数内部有意义。您在for循环中使用返回导致

SyntaxError: Illegal return statement 

如果要在List中打印值,请使用

console.log(List[i]);

在函数内部使用它,否则会出错

ReferenceError: List is not defined 

我做了一些改变

function GetArray() {
    var Item1 = prompt("Enter list item 1");
    var Item2 = prompt("Enter list item 2");
    var Item3 = prompt("Enter list item 3");
    var List = new Array(Item1, Item2, Item3);

for(i=0;i<List.length;++i){console.log(List[i]);}
}

GetArray();

输出

enter image description here

答案 1 :(得分:1)

<script type="text/javascript">
    function GetArray() {
        var Item1 = prompt("Enter list item 1");
        Item1 += "\n";
        var Item2 = prompt("Enter list item 2");
        Item2 += "\n";
        var Item3 = prompt("Enter list item 3");
        Item3 += "\n";
        return [Item1, Item2, Item3];
    }

    var List = GetArray();

    for (var i = 0; i < List.length; i++) {
        console.log(List[i]);
        //alert(List[i]);
    }
</script>

首先,function创建变量范围。因此var List函数内的GetArray将在此函数范围内创建变量List。在这种情况下,我建议返回列表。或者从var List范围中创建GetArray,然后在其中进行分配。

第二个注释,return应该在功能中使用。在这种情况下,内部循环没有意义......

答案 2 :(得分:1)

您的代码存在两个问题。您尝试在其范围之外访问变量List的第一个。如果要访问它,则必须在函数GetArray()之外定义它。第二个问题是你的for循环中有一个return语句,这意味着你的for循环只运行一次。

解决方案:

<script type="text/javascript">
var List;

function GetArray() {
        var Item1 = prompt("Enter list item 1");
        Item1 += "\n";
        var Item2 = prompt("Enter list item 2");
        Item2 += "\n";
        var Item3 = prompt("Enter list item 3");
        Item3 += "\n";
        List = new Array(Item1, Item2, Item3);
    }

    GetArray();

    for (i = 0; i < List.length; i++) {
        console.log(List[i]);
    }
</script>

答案 3 :(得分:1)

首先,您没有为提示变量分配任何值。 就像你必须这样写:

syntax- prompt("Your Text","");

,正确的代码是 “

<script>
    function GetArray() {
        var Item1 = prompt("Enter list item 1","");
        var Item2 = prompt("Enter list item 2","");
        var Item3 = prompt("Enter list item 3","");
        var List = new Array(Item1,Item2,Item3);

        for (i = 0; i < List.length; i++) {
        document.write( List[i]);
        }
    }

    GetArray();
</script>

希望您了解本地和全局变量。

答案 4 :(得分:0)

谢谢大家。我已将“return List [i]”更改为“document.write(List [i]);”,因为它会将其打印到屏幕上。

这是我现在得到的(作为答案的结果),并且工作正常:

<script type="text/javascript">
    function GetArray() {
        var Item1 = prompt("Enter list item 1");
        Item1 += "\n";
        var Item2 = prompt("Enter list item 2");
        Item2 += "\n";
        var Item3 = prompt("Enter list item 3");
        Item3 += "\n";
        List = new Array(Item1, Item2, Item3);
    }

    GetArray();

    for (i = 0; i < List.length; i++) {
        document.write (List[i]);
    }
</script>

这是试图从书中学习它的问题。当我试图在没有正确解释的地方问问题时,它没有回应。