zoukankan      html  css  js  c++  java
  • JS面试题--使用for循环打印1-10,每个数字出现的间隔约500ms

    又来刷面试题啦,哈哈。

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

      

  • 相关阅读:
    dirs命令
    pwd命令
    ls命令
    rmdir命令
    install命令和cp命令的区别
    ./configure,make,make install的作用
    install 命令
    Make 命令
    linux configure使用方法
    Linux下which、whereis、locate、find命令的区别
  • 原文地址:https://www.cnblogs.com/jingmi-coding/p/9220409.html
Copyright © 2011-2022 走看看