如何在数组中定义var?

时间:2012-01-09 04:49:01

标签: javascript arrays 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];
}

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:4)

因为在您声明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];

答案 1 :(得分:3)

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

答案 2 :(得分:1)

在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;