码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2018-06-24 15:06:14      阅读:893      评论:0      收藏:0      [点我收藏+]

标签:修改   bsp   就是   i++   span   col   使用   function   方式   

又来刷面试题啦,哈哈。

要求:使用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

标签:修改   bsp   就是   i++   span   col   使用   function   方式   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!