使用JS构建我的第一个真正的应用程序:Black Jack。我只是想知道为什么我的j
,q
,k
和a
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];
}
非常感谢任何帮助。
答案 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;