社区
JavaScript
帖子详情
关于定时器第一个参数引号的问题
Olivert_Vz
2018-11-18 05:41:41
setTimeout是异步的,所以输出10个0是正常情况。可为什么不加引号就变成1到9了。
第一个参数加不加引号不是只影响捕捉局部变量或者全局变量吗
...全文
60
1
打赏
收藏
关于定时器第一个参数引号的问题
setTimeout是异步的,所以输出10个0是正常情况。可为什么不加引号就变成1到9了。 第一个参数加不加引号不是只影响捕捉局部变量或者全局变量吗
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
天际的海浪
2018-11-18
打赏
举报
回复
setTimeout的第一个参数要么是字符串,要么是一个函数的引用地址。 你 console.log(i) 是直接执行的方法,不是函数的引用地址。 是先执行console.log(i),再把console.log(i)的返回值(也就是undefined)传给setTimeout的第一个参数。 你应该是这样 for (let i = 0; i < 10; i++) setTimeout(function(){console.log(i)}, 0); 不过这样在谷歌浏览器中还是会输出0到9,因为在谷歌浏览器中for用let块作用域变量时,每次循环都会创建一个新的循环变量,并因为闭包的关系保存。
关于JS中setTimeout()无法调用带参函数
问题
的解决方法
// 被递归调用的函数本身,拼成字符串形式,注意
第一个
参数
的
引号
var repeat = "moveing('" + id + "'," + target_x + "," + target_y + "," + t + ")"; var movment = setTimeout(repeat, t); } ``` 通过上述...
setTimeout()递归调用不加
引号
出错的解决方法
首先,让我们分析
问题
的核心:当不加
引号
地直接传递函数名作为`setTimeout`的
第一个
参数
时,如`setTimeout(refreshNum, 3000)`,某些浏览器(如火狐)可能会报错。这是因为`setTimeout`期望接收一个字符串或者一个...
setInterval,setTimeout与jquery混用的
问题
在这里,我们直接传递`show`函数作为`setInterval`的
第一个
参数
,而不是它的字符串表示,这样`setInterval`就能正确地调用该函数。 总结一下,当`setInterval`和`setTimeout`与jQuery混用时,需要注意以下几点: ...
s7-300编程语言实例.ppt
LAD(梯形图)是一种图形语言,比较形象直观,容易掌握,用得最多,堪称用户第一编程语言。梯形图与继电器控制电路图的表达方式极为相似,适合于熟悉继电器控制电路的用户使用,特别适用于数字量逻辑控制。 FBD...
使用闭包对setTimeout进行简单封装避免出错
在这个改进的版本中,`delayAlert`函数接受`msg`和`time`两个
参数
,然后使用一个匿名函数作为`setTimeout`的
第一个
参数
。这个匿名函数内部可以访问到`delayAlert`函数的作用域,包括它的
参数
`msg`,这就形成了一个...
JavaScript
87,997
社区成员
224,709
社区内容
发帖
与我相关
我的任务
JavaScript
Web 开发 JavaScript
复制链接
扫一扫
分享
社区描述
Web 开发 JavaScript
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章