setTimeout()的返回值
今天遇到一个问题,题目如下:
var len=4; while(len--){setTimeout(function(){console.log(len); },0); console.log(len); };
问:输出是什么?
我的答案是打印3,2,1,0,-1,-1,-1,-1
过程是先执行console.log(len) ,执行了4次之后,再执行4次 setTimeout
问题很简单,但是我就想把console.log(len) 去掉,如下:
var len=4; while(len--){setTimeout(function(){console.log(len); },0); };
这下会打印什么?
应该是-1,-1,-1,-1对吧,但是很遗憾,在chrome的控制台下显示的是 15,-1,-1,-1,-1为什么多个15,我就很好奇的在执行了一边这段代码,结果显示的是19,-1,-1,-1,-1
再执行就是23,-1,-1,-1,-1
很有有规律,这4个-1前面的数字是什么?我发现它是每次循环的次数,但是刚打开我之前没有执行啊,第一次打印也不能是15啊
秉着知根知底的信念,就去谷歌了一下,发现这是setTimeout的返回值。为什么会有这么一个返回值呢,大家都知道setTimeout执行会被clearTimeout结束等待,它是靠什么结束的呢?是ID,
大家可能不太相信,可以这样来尝试下:
var len=4; while(len--){var time=setTimeout(function(){console.log(len); },0); }; console.log(time);
这样就可以知道time是什么了吧。
转载于:https://www.cnblogs.com/wolm/p/3489066.html
setTimeout()的返回值相关推荐
- setTimeout() 方法的返回值
setTimeout() 方法的返回值 setTimeout() 方法的返回值是一个唯一的数值,这个数值有什么用呢?如果你想要终止 setTimeout() 方法的执行,那就必须使用 clearTim ...
- setInterval 和setTimeout 清空定时器,返回值,赋值为null的区别
说到定时器,很多人都不陌生,觉得这个有什么说的,很简单的了,其实你真正的理解了它了吗? 定时器的返回值是什么?clearInterval和 null有什么区别,可能有些干了几年的都不知道,下面我以se ...
- typescript 中使用 setTimeout 返回值类型 eslint 检查错误 ‘NodeJS‘ is not defined.eslint(no-undef)
项目场景: 前端项目 使用typescript eslint 问题描述 使用setTimeout 函数,接收其返回值. 返回值类型 function setTimeout<TArgs exten ...
- java 定时器返回值_javascript 函数返回值(return)、定时器(setTimeout、setInterval)...
一.函数的返回值:return 1.函数名+括号=return后面的值 function fn1(){ return 100; } alert(fn1()); // 100 fn1()=return后 ...
- android 调用js怎么获取返回值_js 函数
函数是一个特殊的对象 具名函数 function 函数名(形式参数1,形式参数2){ 语句 return 返回值 } 匿名函数 上门的具名函数,去掉函数名就是匿名函数 let a =function( ...
- JS一起学04:函数返回值、定时器、随机数、自动播放的幻灯片
一.函数返回值----将相应的值返回到函数调用的地方 1. 可以不写返回值 2. 可以没有return,如果不返回,默认返回undefined 3. 本函数内,renturn之后的JS语句不再执行,跳 ...
- async js 返回值_图文讲解浏览器执行JS过程中的微任务和宏任务
背景 我们知道浏览器有一个特定的事件执行机制,专业名词叫做Event Loop.如下图所示,浏览器会优先执行同步代码,遇到异步的代码时,会被挂起并在需要执行的时候加入到 Task(有多种 Task) ...
- 如何获取.then的返回值_仅仅知道如何终止XHR请求,或许对你来说是不够的!
TLDR: 当我们需要的时候,我们可以通过AbortController接口来终止一个或者多个请求. 前言 到目前为止,我们有两个常用的基本的手段去发送请求进而局部刷新页面内容,其一是XMR(XMLH ...
- async js 返回值_获取JavaScript异步函数的返回值
今天研究一个小问题: 怎么拿到JavaScript异步函数的返回值? 1.错误尝试 当年未入行时,我的最初尝试: function getSomething() { var r = 0; setTim ...
最新文章
- 诊断IIS中的ASP0115错误
- 谷歌X实验室开源了一款像血糖仪一样的EEG识别系统
- creo如何更改打开时显示方式_Creo4.0入门教程(3):设置工作目录和打开以及保存文件...
- python数据分析架构_Python数据分析
- mac os 相关命令
- Android开发学习之路-机器学习库(图像识别)、百度翻译
- 回顾我个人的创业经历
- Pytorch-torchvision源码解读:ASPP
- AlphaZero完胜三大世界冠军棋类程序:5000个TPU、自学一天
- 在Scala IDEA for Eclipse或IDEA里程序编译实现与在Spark Shell下的对比(其实就是那么一回事)...
- Ambari安装之安装并配置Ambari-server(三)
- 每日java制作小工具_制作Java小工具并在命令行中执行
- OPERA重要密码学习一
- WinZip for Mac注册版
- 在线协同编辑excel系统
- 单片机c语言课后题答案,单片机原理及应用(C语言版)习题答案.doc
- 微服务中的服务发现是什么?
- xiunobbs 4 mysql_xiunobbs
- access表达式的用法
- Centos7+LAMP