var timer=null 写到函数外边,这是一个全局的timer,那么在函数中clearInterval(timer)的时候,清除的就是这个timer。
而放到函数中,每此调用函数的时候都会生成一个timer,clearInterval只能清除每次调用的timer, 而不会清除其他次函数调用的timer,所以会越来越快。 所以,把timer放到外边是比较合理的做法。可以这样测试,不必去刻意点击:
(1) timer放到外边
var timer = null
function startMove(){
//xxxx
}for( var i = 0; i<200; i++){
    startMove();
}
(2) timer放到函数中。
流程与上述相似。看出2确实是越来越快。