步入前端一年了。
在我的脑海中,setTimeout,的用法应该是这样的:setTimeout(code,millisec);
code:要调用的函数后要执行的 JavaScript 代码串。
millisec:在执行代码前需等待的毫秒数。
一直以来,我都认定setTimeout的参数只能是两个。
直到,今天我看到这段setTimeout(resolve, ms, 'done');我瞬间懵逼了。这第三个参数是怎么回事。我以为是es6新添加的。然后上网查资料,发现es6根本没有添加这个,显然是之前就存在的一种用法。
于是,我开始思考,猜测第三个参数就是resolve的参数的值。
于是,我写了这么一段代码。
setTimeout(function(value){
console.log(value);
},1000,'新年快乐');
控制台输出,‘新年快乐’;
事实证明,我的想法是正确的。
于是我又想,四个参数呢。
setTimeout(function(value1,value2){
console.log(value1,value2);
},1000,'2017','新年快乐');
控制台成功输出,‘2017新年快乐’。
总结:
setTimeout的完整形式应该是这样的:setTimeout(code,millisec,a1,a2,...);其中,code,,illisec是必须的。其余参数依次是需要执行函数的参数。