如何在数组中定义一个var?
Posted
技术标签:
【中文标题】如何在数组中定义一个var?【英文标题】:How to define a var in an array? 【发布时间】:2012-02-05 17:30:58 【问题描述】:用 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];
任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:因为在您声明 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];
【讨论】:
严格来说,这与声明无关,因为它们发生在任何代码执行之前,它与分配有关。在分配给 cards 的过程中使用变量时,它们的值是未定义的。【参考方案2】:您是在使用它们之后定义它们...您必须在使用它们之前定义变量,而不是之后。
【讨论】:
【参考方案3】:在 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;
【讨论】:
我试过了,它返回 undefined: var a; 卡片 = [2,2,...,a,a] a = 11; 有人介意解释为什么会这样,在我的书或谷歌中找不到很好的解释。 以上解释了它发生的原因。为避免未定义,请在使用变量之前为其赋值(即将对 cards 的赋值移动到对 j、q、k 和 a)。以上是关于如何在数组中定义一个var?的主要内容,如果未能解决你的问题,请参考以下文章