作家
登录

80%应聘者都不及格的JS面试题

作者: 来源: 2017-04-11 12:02:03 阅读 我要评论

  •  
  •         }, 1000 * j));  // 这里修改 0~4 的准时器时光 
  •  
  •     })(i); 
  •  
  •  
  •   
  •  
  • setTimeout(function() { // 这里增长准时器,超时设置为 5 秒 
  •  
  •     console.log(new Date, i); 
  •  
  • }, 1000 * i);  
  • 不得不承认,这种做法虽粗暴有效,然则不算是能额外加分的筹划。如不雅把此次的需求抽象为:在系列异步操作完成(每次轮回都产生了 1 个异步操作)之后,再做其他的工作,代码该怎么组织?聪慧的你是不是想起了什么?对,就是 Promise。

    可能有的同窗会问,不就是在控制台输出几个数字么?至于如许杀鸡用牛刀?你要知道,面试官真正想考察的是候选人是否具备某种才能和本质,因为在现代的前端开辟中,处理异步的代码到处可见,熟悉和控制异步操作的流程控制是成为合格开辟者的根本功。

    顺着下来,不难给出基于 Promise 的解决筹划(既然 Promise 是 ES6 中的新特点,我们的新代码应用 ES6 编写是不是会更好?如不雅你这么写了,大年夜概率会让面试官心生好感):

    1. const tasks = []; 
    2.  
    3. for (var i = 0; i < 5; i++) {   // 这里 i 的声明不克不及改成 let,如不雅要改该怎么做? 
    4.  
    5.     ((j) => { 
    6.  
    7.         tasks.push(new Promise((resolve) => { 
    8.  
    9.             setTimeout(() => { 
    10.  
    11.                 console.log(new Date, j); 
    12.  
    13.                 resolve();  // 这里必定要 resolve,不然代码不会按预期 work 
    14.  
    15.             }, 1000 * j);   // 准时器的超不时光慢慢增长 
    16.  
    17.         })); 
    18.  
    19.     })(i); 
    20.  
    21.  
    22.   
    23.  
    24. Promise.all(tasks).then(() => { 
    25.  
    26.     setTimeout(() => { 
    27.  
    28.         console.log(new Date, i); 
    29.  
    30.     }, 1000);   // 留意这里只须要把超时设置为 1 秒 
    31.  
    32. });  

    比拟而言,笔者更偏向于下面如许看起来更简洁的代码,要知道编程风格也是很多面试官重点考察的点,代码浏览时的颗粒度更小,模块化更好,无疑会是加分点。

    1. const tasks = []; // 这里存放异步操作的 Promise 
    2.  
    3. const output = (i) => new Promise((resolve) => { 
    4.  
    5.     setTimeout(() => { 
    6.  

        推荐阅读

        Apache Beam 剖析

      $ mvn compile exec:java -Dexec.mainClass=org.apache.beam.examples.WordCount \ -Dexec.args="--runner=SparkRunner --inputFile=pom.xml --output=counts" -Pspark-runner 1.概述在大>>>详细阅读


      本文标题:80%应聘者都不及格的JS面试题

      地址:http://www.17bianji.com/lsqh/34710.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)