JavaScript中带字符串的setInterval或setTimeout

JavaScript中带字符串的setInterval或setTimeout,javascript,settimeout,setinterval,Javascript,Settimeout,Setinterval,现在,我使用String作为参数,测试以下关于setInterval和setTimeout的代码 >> setInterval(String,2) 2214 >> setInterval(String,2) 2215 在IE中,输出是2214,我想知道为什么结果是2214 但是在Chrome中测试,输出是 setInterval(String, 2) 18 setInterval(String, 2) 19 根据setInterval的语法: setInter

现在,我使用
String
作为参数,测试以下关于
setInterval
setTimeout
的代码

>> setInterval(String,2) 
2214 
>> setInterval(String,2) 
2215 
在IE中,输出是
2214
,我想知道为什么结果是
2214

但是在Chrome中测试,输出是

setInterval(String, 2)
18
setInterval(String, 2)
19
根据setInterval的语法:

setInterval(func|code, delay)
所以我尝试下面的方法

>> String 
 function String() {     [native code] } 
>> String() 
"" 
没有实际的数字结果

我还尝试使用
setTimeout

setInterval(String, 2)
20
setInterval(String, 2)
21
setTimeout(String, 2)
22
我不清楚这些代码发生了什么?

setInterval()
setTimeout()
返回计时器ID。如果清除它们,这些将帮助浏览器再次识别它们,但不必担心它们的特定值


运行的函数/代码与
setInterval()
setTimeout()
的返回值无关。代码的返回值AFAIK将被丢弃,除非您将其放在某个地方。正如Thilo在评论中所说,在
setInterval()
setTimeout()
返回时,代码甚至都不会运行。

特别是,它们与被调用函数返回的内容(甚至还没有被调用)完全无关。@Thilo谢谢,刚刚补充了这一点。