分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

JS面试题--使用for循环打印1-10,每个数字出现的间隔约500ms

发布时间:2023-09-06 02:01责任编辑:郭大石关键词:面试题

又来刷面试题啦,哈哈。

要求:使用for循环打印1-10,每个数字出现的间隔约500ms。

分析:考察点--闭包,块级作用域

方式一、使用闭包+立即执行函数,自己当时的思路也是这样想的,但是,结果却没有体现间隔500ms

/*结果虽然依次输出了1-10,但是每个数字之间没有间隔,是一次性输出的,所以不正确*/ 
for (var i = 1; i <= 10; i++) { ????????????setTimeout((function(i) { ????????????????console.log(i); ????????????????})(i), 500); ??????????}

  经过修改,结果满足要求:1.setTimeout每次的间隔500*i,保证每隔500ms输出一次  2.将立即执行移到外层

/** * 使用for循环打印1-10,每个数字出现的间隔约500ms * 方法一、使用闭包,注意setTimeout,每隔500ms,因此每次传递的间隔时间要乘以i */for(var i=1;i<=10;i++){ ???(function(i){ ???????setTimeout(function(){ ???????????console.log(i); ???????},500*i); ???})(i);}

  方法二、使用let,let本身就是块级作用域

for(let i=1;i<=10;i++){ ???setTimeout(function(){ ???????console.log(i); ???},500*i);}

  

JS面试题--使用for循环打印1-10,每个数字出现的间隔约500ms

原文地址:https://www.cnblogs.com/jingmi-coding/p/9220409.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved