JS数组中true与false

下面代码中主要有个问题不是搞的很懂,求指导。疑惑:if(!usedNums[newNum]){usedNums[newNum]=true;document.getElem... 下面代码中主要有个问题不是搞的很懂,求指导。
疑惑:
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>
展开
 我来答
yugi111
2014-04-12 · TA获得超过8.1万个赞
知道大有可为答主
回答量:5.1万
采纳率:70%
帮助的人:1.3亿
展开全部
do {
// 如果newNum在数组usedNums里面存在,就继续循环,
// 如果不存在,就停止循环,这样就保证了每次都是不存在的
// 所以这样找到的都是不存在的。和下面的被设置的true对应
// 也就是说:直到找到一个不存在的,就停止while循环。
    newNum = colBasis + getNewNum() + 1; 
} while (usedNums[newNum]);
    
if (!usedNums[newNum]) {// 如果不存在里面,就加进去显示,然后再设置这个已经存在了
    usedNums[newNum] = true;
    document.getElementById(currSquare).innerHTML = newNum;
}
帝都小女子
2015-10-26 · 知道合伙人金融证券行家
帝都小女子
知道合伙人金融证券行家
采纳数:26030 获赞数:530129
在校期间荣获文明小使者称号,并考取会计从业资格;曾多次参与集团业务处理,并获得其管理层高度赏识。

向TA提问 私信TA
展开全部
  理解==或===的区别
  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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式