全局变量超出范围

时间:2012-11-22 16:33:28

标签: javascript jquery variables scope

在我的程序中,我在顶部有全局变量,用于游戏中的各种功能。当它们被调用时,它们有时会在控制台中显示为未定义。我一直玩这么久,但似乎无法找到问题的根源。是因为它们是数组,还是有其他原因?

var randomWord = [];
var listOfWords = [];
var gridSize = [];
var populationNumber = [];
var completionNumber = [];
var attemptNumber = [];

这是...中的脚本的小提琴。

http://jsfiddle.net/sYDs4/1/

1 个答案:

答案 0 :(得分:1)

以下是一些不适合评论的评论......

   if (populationNumber >= 6) {
        var populationNumber = 6;
    }
    if (completionNumber >= 6) {
        var completionNumber = 6;
    }

不应该在JS中完成,因为您创建一个与全局变量同名的局部变量,这很危险。甚至没有提到你为一个应该是数组的变量(全局数字)分配一个数字。

function nextButton() {
    //Next question click event
    $('td').removeClass('highlight-problem');
    var r = randomWord;
    while (r == randomWord) {
        randomWord = Math.floor(Math.random() * (listOfWords.length));
    }

这会为randomWord指定一个数字,该数字在其他地方用作数组,但在此函数中作为数字。 closeButton函数也是如此。