2、setTimeout的机制是异步执行。所以for循环的时候根本不会等setTimeout执行完了,再循环,而是一口气把i的数字加到5。然而循环中的setTimeout语句会被排入内存中排序,等到时间到了,再执行setTimeout。这是js的异步执行的特征。
1.var con 后显示的是content.value的值 并不是content.value这个函数
btn.onclick=function (){var mValue=m.value
var con=content.value
console.log(typeof con)//string
if(mValue>1){
con=mValue*(mValue-1)
console.log(con)//90
console.log(typeof con)//number
}else if(mValue===1){
con=1
}else{
alert("请输入一个非负整数!")
}
}
2.实现阶乘 可用下面这个函数
btn.onclick=function (){var mValue=m.value
if(mValue<1){
alert("不能输入负值")
return false
}
var sum = 1
while (mValue){
sum = sum*mValue--
}
content.value = sum
}
<script type="text/javascript">var arr = [1,3,6,2,7,8,2,5,7,8,0]
var count2 = 0
var count7 = 0
for(var i = 0i<arr.lengthi++){
if(arr[i] === 2){
console.log("2出现在第"+i+"个")
count2++
}
if(arr[i] === 7){
console.log("7出现在第"+i+"个")
count7++
}
}
console.log("2出现了"+count2+"次")
console.log("7出现了"+count7+"次")
</script>