为什么if写了条件表表达式,但是没写条件执行语句还能执行呢?


<style>
    div {
        position: absolute;
        left: 0;
        width: 100px;
        height: 100px;
        background-color: tan;
    }
</style>

<body>
    <div></div>
</body>
<script>
    var div = document.querySelector('div');
    var timer = setInterval(function fn() {
        if (div.offsetLeft >= 100) {
           
        } else {
            div.style.left = div.offsetLeft + 1 + 'px';
            console.log(div.style.left);
        }
    }, 30);
</script>

就像这段代码,我本来想设置div的offsetleft大于等于100就会clearinterval(timer),但是我的if语句里面没有写clearintervale(timer),运行的时候div还是会在offsetleft==100的时候停下,这是为什么呢?

因为以后的div.style.left等于100了,执行if里面的语句没有执行else语句,所以永远是100px,if里面因为没有表达式,所以你看见的元素就停那了,其实计时器还在运行,只不过永远执行if语句没有执行else语句

你所说的停下来是指元素停下来,但是定时器本质是没有停下来的哦,因为你的if里面没有代码,也不属于else