setTimeout   只执行一次  可用来实现js代码异步执行
setInterval    循环执行

console.log((function(){console.log(1);setTimeout(function(){console.log(2)},1000)setTimeout(function(){console.log(3)},0);setTimeout(function(){console.log(4)},0);console.log(5)
})())
答案是什么呢?  答案是:
1    5  undefined   3   4  2
下面解析一下此题:
首先要储备的知识点是: 1、setTimeout 中的时间是  以 “ms” 为单位的, 而且 即便是 0ms 也是有时间的,因为setTimeout中的时间是有时间误差的;  2、如果函数没有 return 返回值, 那么 就会 出现 undefined ,不要问为啥出现undefined, 我也不知道!
     这一点就能判断出 一部分答案了:  1   5   3  4  2
但是为啥还有个 “undefined” ?
    因为最外层的  console.log() 里面包含的是一个立即执行函数 IIFE (Immediately Invoked Function Expression) ,居然没有return返回值,那肯定是undefined的了! 
 
但是为啥要在“1 5 ”的后面呢?
    因为“return xxxxx” 一般是写在函数的最后的,不然所以的console不就都不执行了嘛!可是即便写在最后,上面有setTimeout,那也得执行在setTimeout之前,但幸亏没有写return 不然,那几个setTimeout也不会执行的啦!
    so   最后的答案想必我就不多嘴了吧!
    最后声明: 如有错误,欢迎批评指出!再次谢过~~~

      


一道有关setTimeout的面试题相关推荐

  1. python fun_一道神奇的Python面试题,你会吗?

    原标题:一道神奇的Python面试题,你会吗? 无意间,看到这么一道Python面试题:以下代码将输出什么? def testFun: temp = [lambda x : i*x for i in ...

  2. 一道经典的JavaScript面试题

    一道经典的JavaScript面试题 转载于:https://www.cnblogs.com/suoking/p/5227430.html

  3. 一道丧心病狂的java面试题

    转载自 一道丧心病狂的java面试题 无意中了解到如下题目,觉得蛮好. 题目如下: public class TestSync2 implements Runnable {int b = 100; s ...

  4. 一道内存分配的面试题后续

    昨天写的题目,在VC6.0上面测试一下 一道内存分配的面试题 结果发现一个问题,发现输出结果竟然没有问题,我很慌,如果这样的输出结果没有问题的话,那肯定是跟我们的理论对不上号的. 所以我只能继续调试 ...

  5. 一道技术美术的面试题

    一道技术美术的面试题 https://zhuanlan.zhihu.com/p/27344672 一道技术美术的面试题 王滕昊 ​ 游戏开发 话题的优秀回答者 最近看越来越多的知乎小伙伴关注TA的这个 ...

  6. 转自知乎 知乎ID@方志宏 记一道简单的Java面试题

    记一道简单的Java面试题 这可能是历史上最简单的一道Java面试题 题目很简单,完成代码,判断一个整数是否是奇数 public boolean isOdd(int i) 相信相当数量的人都在已经准备 ...

  7. 聊聊一道简单的javascript面试题

    下面是一道很入门的js面试题: for (var i = 0; i < 10; i++) {setTimeout(function () {console.log(i)}, 10 * i) } ...

  8. 一道有意思的css面试题,9宫格

    今天出去面试,遇到了一道有意思的面试题:写一个css9宫格,要求边框是5px,鼠标hover的时候边框变色. 当时没有答出来,回来想了两个写法感觉都不是最优解. 1.html部分 <ul> ...

  9. 一道非常经典C++面试题|大厂面试

    问题1:小伙伴问我,这个unique_ptr出了作用域为什么没调它的析构函数呢? 问题2:第一个运行结果是什么?为什么? 我把问题抛到群里讨论,让大家一起思考,大家可以先思考一下: C++背景知识 C ...

最新文章

  1. Manifest merger failed : uses-sdk:minSdkVersion 15 cannot be smaller than version 16 declared in lib
  2. 思考灰鸽子之后,新***的运营模式
  3. VSCODE编译头文件时函数没有定义的解决方案(VSCODE手动链接C文件方法)
  4. python编辑器vim下载_vim做python编辑器
  5. ubuntu 16.04安装nVidia显卡驱动和cuda/cudnn踩坑过程
  6. HJ浇花(牛客竞赛 约束差分)
  7. 学习笔记~~~~~python基础
  8. 给不起钱的大公司,算不上大公司
  9. 《Effective Python 2nd》 读书笔记——函数
  10. 人机工程学/人因工程学的定义
  11. 微信公众号开发 获取openid时报错40163:code been used问题的解决
  12. 基于C语言 51单片机应用技术 速成教程(持续更新中)
  13. esxi安装威联通_威联通TS-453Bmini NAS加装内存,轻松玩转虚拟机安装win10系统
  14. iOS获取设备ID总结
  15. 三个月来美国又有一万家餐馆因疫情倒闭或关闭;爱彼迎帮助在危机中的人寻找临时住宿 | 美通企业日报...
  16. webworker应用场景_JavaScript 工作原理之七-Web Workers 分类及 5 个使用场景
  17. 实验三+163+张玉洁
  18. administrator无法创建新用户的解决
  19. 复盘暴涨,TWEE焕发第二春
  20. 设置IE首页与新建页面内容

热门文章

  1. 使用php实现搜索关键词加粗高亮变红代码
  2. 全国计算机排名2012,[教育·计算机] 2012年计算机专业排名 全国计算机专业大学排名 - 高等教育...
  3. Mac版微信突然显示音频设备启动失败
  4. 【转】夫妻间的魔鬼定律
  5. 开篇 少年翩翩(转载自张鹏的BLOG)
  6. BeanDefinition 及其构造方式 BeanDefinitionBuilder, AbstractBeanDefinition
  7. Swift3 1.简单的网络请求(POST)
  8. dispatch_after 的swift 3 版本
  9. 百万前端之JavaScript+jquery实现点赞、收藏、评论功能
  10. 异常中的finally