简单的JS问题求助(刚入门望答疑)

JavaScript016

简单的JS问题求助(刚入门望答疑),第1张

1、你用的是for循环。里面有个i++,每次循环一次i就加一次。当循环到第五次的时候也就是显示4的时候后,仍然会加一次i。所以最后i是5.

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>