如何在数组中定义var



用JS构建我的第一个真正的应用程序:Black Jack。我只是想知道为什么我的jqka var会返回为undefined

window.onload = init;
var cards = [2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,j,j,j,j,q,q,q,q,k,k,k,k,a,a,a,a];
var j = 10;
var q = 10;
var k = 10;
var a = 11;
function init() {
    var button = document.getElementById("doIt");
    button.onclick = processIt;
}
function processIt() {
    var cpu1 = document.getElementById("cpu1");
    cpu1.innerHTML = cards[37];
}

如有任何帮助,我们将不胜感激。

因为在声明cards时,这些变量(或者更确切地说,它们的值)仍然是未定义的。重新排序声明。

var j = 10;
var q = 10;
var k = 10;
var a = 11;
var cards = [2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,j,j,j,j,q,q,q,q,k,k,k,k,a,a,a,a];

您在使用它们之后定义它们。。。你必须在使用变量之前定义变量,而不是在使用之后。

在javascript中,首先处理声明,但按顺序进行赋值。您的代码是有效的:

var cards, j, q, k, a;
// Here, all variables exist but none have a value
// When cards is assigned an array, the values of j, q, k and a 
// are still undefined.
cards = [2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,
         8,9,9,9,9,10,10,10,10,j,j,j,j,q,q,q,q,k,k,k,k,a,a,a,a];
// Now the rest are given values
j = 10;
q = 10;
k = 10;
a = 11;

最新更新