var timer = setInterval(function(){
alert(1);
},1000)
/* 上面的代码在浏览器中会自动执行 */
/* 下面的代码不会自动执行 */
var a = function(){
alert(2);
}
同样是用变量来保存(不知道这种说法对不对),为啥上面的会自动执行,下面的不会呢?
var timer = setInterval(function(){
alert(1);
},1000)
/* 上面的代码在浏览器中会自动执行 */
/* 下面的代码不会自动执行 */
var a = function(){
alert(2);
}
同样是用变量来保存(不知道这种说法对不对),为啥上面的会自动执行,下面的不会呢?
> var timer = setInterval(function(){
alert(1);
}, 1000)
> typeof timer
< "number"
> var a = function(){
alert(2);
}
> typeof a
< "function"
解释:
第一个setInterval
是一个函数,第一个是将函数值赋值给了timer。
第二个是定义了一个函数。
WindowOrWorkerGlobalScope
的setInterval()
方法重复调用一个函数或执行一个代码段,在每次调用之间具有固定的时间延迟。
所以你定义的timer的值就是setInterval执行后的返回值,timer的类型是number。
然后下面的a的值,仅仅是一个匿名函数,当然不会自动执行啦。
setInterval
是个函数,第一个是将函数执行结果赋值给time,第二个是将函数本身赋值给a,要想第二个也执行,可以写成iife。如下
var a = (function(){
alert(2);
})()
var timer = setInterval(function(){
alert(1);
},1000)
setInterval 是一个函数,setInterval()是执行setInterval函数,而alert(1)是在setInterval函数中执行的内容。
var a = function(){
alert(2);
}
这段代码是声明一个函数
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
2 回答4.3k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
4 回答2.5k 阅读✓ 已解决
5 回答3.8k 阅读