JS数组中true与false

下面代码中主要有个问题不是搞的很懂,求指导。
疑惑:
if(!usedNums[newNum]){
usedNums[newNum]=true;
document.getElementById(currSquare).innerHTML=newNum;
}
这段代码意在何为?为什么要判断true和false,解释说把其设置为true就会把newnum写到卡片上,什么也不做,同时不会有重复数字?怎么理解?
下面是详细代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link rel="stylesheet" href="style.css" type="text/css" />
<title>用循环进行重复操作-bingo</title>
<script language="javaScript" type="text/javascript">
window.onload=initAll;
var usedNums=new Array(76);
function initAll(){
if(document.getElementById){
for(var i=0;i<24;i++){
setSquare(i);//i值传递给了setSquare函数,用这一数据填充参数thisSquare,但是函数实际上看不到i,在函数内部只知道thisSquare
}
}
else{
alert("你的浏览器版本太旧了");
}
}

function setSquare(thisSquare){
var currSquare="square"+thisSquare;
var colPlace=new Array(0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4);
var colBasis=colPlace[thisSquare]*15;
var newNum;//进入循环前创建,只需创建一次

do{
newNum=colBasis+getNewNum()+1;
}
while(usedNums[newNum]);

if(!usedNums[newNum]){
usedNums[newNum]=true;
document.getElementById(currSquare).innerHTML=newNum;
}
}

function getNewNum(){
return Math.floor(Math.random()*15);
}
</script>
</head>
<body>
<table>
<tr>
<th>B</th>
<th>I</th>
<th>N</th>
<th>G</th>
<th>O</th>
</tr>
<tr>
<td id="square0"> </td>
<td id="square5"> </td>
<td id="square10"> </td>
<td id="square14"> </td>
<td id="square19"> </td>
</tr>
<tr>
<td id="square1"> </td>
<td id="square6"> </td>
<td id="square11"> </td>
<td id="square15"> </td>
<td id="square20"> </td>
</tr>
<tr>
<td id="square2"> </td>
<td id="square7"> </td>
<td id="free">Free</td>
<td id="square16"> </td>
<td id="square21"> </td>
</tr>
<tr>
<td id="square3"> </td>
<td id="square8"> </td>
<td id="square12"> </td>
<td id="square17"> </td>
<td id="square22"> </td>
</tr>
<tr>
<td id="square4"> </td>
<td id="square9"> </td>
<td id="square13"> </td>
<td id="square18"> </td>
<td id="square23"> </td>
</tr>
</table>
<p><a href="test3.html" id="reload">点击我</a>去创造一个新卡片</p>
</body>
</html>

do {
// 如果newNum在数组usedNums里面存在,就继续循环,
// 如果不存在,就停止循环,这样就保证了每次都是不存在的
// 所以这样找到的都是不存在的。和下面的被设置的true对应
// 也就是说:直到找到一个不存在的,就停止while循环。
    newNum = colBasis + getNewNum() + 1; 
} while (usedNums[newNum]);
    
if (!usedNums[newNum]) {// 如果不存在里面,就加进去显示,然后再设置这个已经存在了
    usedNums[newNum] = true;
    document.getElementById(currSquare).innerHTML = newNum;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-10-26
  理解==或===的区别
  1. ==会把比较的二者进行类型转换:
  如:0 == false; // true, 会把0转成bool值进行比较
  1 == true; // true, 同样把1转成bool值再和true进行比较
  2. ===是不会把比较的二者进行类型转换,是string就是string,是number就是number
  如: 0 === false; // false, 因为0是number,false是boolean,两者就肯定不相等
  1 === true; // false

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网