你这写的有点混乱,稍微整理下:
<body><div id='odiv'></div>
<script>
var odiv=document.getElementById('odiv')
var num=''
var arr=[]
/*//这里修改下
for(var i=0i<4i=i+1){ //生成4个1-5不重复的数字
var t=Math.floor(Math.random()*5)//生成随机数
arr.push(t) //把生成的数字放进这个数组里
}
*/
//修改成这样的:
//定义一个while循环,循环的条件是集合arr的子集少于4个
while(arr.length<4){
var t=Math.floor(Math.random()*5)//生成随机数
if(arr.indexOf(t)==-1){
//如果t在集合arr中存在,indexOf会返回t在集合arr中的位置。
//如果不存在,indexOf会返回-1
arr.push(t) //把生成的数字放进这个数组里
}
}
for(var i=0i<=arr.lengthi++){
num=num+(i+1)+':'+arr[t]+'<br/>'
}
odiv.innerHTML=num
/*//上面用到了while循环,并且在内部就直接判断了生成的数字是否在集合中存在
//所以,这里就不需要判断了
function pd(){
for(var i=0i<arr.lengthi++){
if(arr[i]===t){
return true
}else{
return false
}
}
}
var bol=pd()//比较是否重复
if(bol){
i--
continue
}else{
num=num+(i+1)+':'+t+'<br/>'
}*/
odiv.innerHTML=num
</script>
</body>
把上面不需要的去掉:
<body><div id='odiv'></div>
<script>
var odiv=document.getElementById('odiv')
var num=''
var arr=[]
//修改成这样的:
//定义一个while循环,循环的条件是集合arr的子集少于4个
while(arr.length<4){
var t=Math.floor(Math.random()*5)//生成随机数
if(arr.indexOf(t)==-1){
//如果t在集合arr中存在,indexOf会返回t在集合arr中的位置。
//如果不存在,indexOf会返回-1
arr.push(t) //把生成的数字放进这个数组里
}
}
for(var i=0i<=arr.lengthi++){
num=num+(i+1)+':'+arr[t]+'<br/>'
}
odiv.innerHTML=num
</script>
</body>
% + - * /
% 取余 两个数相除的余数。
++ 自增运算,自增为1,++在前是在自身先加1后进行赋值,如
var a=5;
var b=++a;
所以a自身加1后给b赋值,结果即为a=5;b=5;
++在后是先赋值后再自身加1,已赋值不会受到影响, 如
var a=5;
var b=a++;
a先给b赋值后在自身加1,5+1=6,所以结果是 a=6;b=5;
-- 自减运算,减量为1,
--在前先自身减1后赋值
--在后先赋值后自身减1,
关系运算符
< > <= >= != !== == ===
==只判断数值是否相等,不判断类型。
===既判断数值也判断类型
!=只判断数值是不相等,不判断类型。
!==既判断数值也判断类型
逻辑运算符
&&与 必须同时满足条件才是true,有一不满足就是false。
||或 满足一个条件就是true
!非 取反
心态良好
let n = 0let flag = true
while (n <= 10 || n >= 0) {
if (flag) {
sleep(1000)// 延时函数,单位ms
n++
console.log(n)
} else {
sleep(1000)// 延时函数,单位ms
n--
console.log(n)
}
if (n == 10 || n == 0) {
flag = !flag
}
}