全局变量无效

时间:2018-06-16 13:27:09

标签: javascript global-variables

当我尝试代码时,对于键变量说“未定义”。我认为它不是全局的,即使我没有把它放在一个函数中。 有人知道如何解决这个问题吗?非常感谢帮助。

<html>
<head>
<script>

var key = Math.floor(Math.random() * 27 + 96);

function lespres(event) {

    var p = 0;
    document.getElementById('pedonummer').innerHTML = "random getal" + key;
    var x = event.which;
    document.getElementById('teest').innerHTML = "KEY PRESSED: " + x;
    if(x == key) {
        var p = p + 1;
        document.getElementById('punten').innerHTML = p + "points";
        var key = Math.floor(Math.random() * 27 + 96);
    }
}

</script>
</head>
</html>

2 个答案:

答案 0 :(得分:3)

您已使用var声明了两个名为key的变量。

<script>之后定义的那个在函数内部被document.getElementById('punten').innerHTML = p + "points";

之后定义的那个屏蔽了

答案 1 :(得分:0)

你有双重定义。一个是全球性的,另一个是本地的。

您必须从本地关键字中删除var关键字。

<html>
<head>
<script>

var key = Math.floor(Math.random() * 27 + 96);

function lespres(event) {

    var p = 0;
    document.getElementById('pedonummer').innerHTML = "random getal" + key;
    var x = event.which;
    document.getElementById('teest').innerHTML = "KEY PRESSED: " + x;
    if(x == key) {
        var p = p + 1;
        document.getElementById('punten').innerHTML = p + "points";
        key = Math.floor(Math.random() * 27 + 96); // HERE
    }
}

</script>
</head>
</html>