js延时函数_js自执行函数分享
自执行函数是从哪里了解到的呢,从学习延时器settimeout(fn,time)的时候
测试一个for循环里面加一个延时器,想要每隔一秒输出一次i
for(var i=0;i<6;i++){
settimeout(function(){
concole.log(i);
},1000)
}
看上去没什么毛病,但是运行发现会输出6个6,
但是如果把var改成let是会输出0,1,2,3,4,5,6,7,8,
貌似没什么问题了,但是这是延迟一秒之后同时输出这九个数,我们想要的结果是一秒输出一个
(至于var和let的区别,我就了解作用域不同,var是全局的,而let是块作用域)
为什么会造成这个问题呢,跟js解析有关系,
延时器属于异步操作,会在其他的运行完才会运行这个,for循环执行太快了瞬间就完成,而延时器还没开始
于是接触到了自定义函数,将原来的改成下面的,这样就会解决问题
具体说一下问什么这样写
写一个函数把延时器包起来,这样在js解析时就会让这个函数与for循环同步执行,这个函数写成一个自执行的,不用调用就会执行,说没有调用吧,其实真正意义上还是被调用了
1:定义一个函数,后面加一个(),仔细看一下其实发现这就是fun1();
相当于吧函数调用了
2:
弄一个()把函数包起来,注意这里面的函数是没有函数名的,上面的延时器就是这个写法,只不过里面传了个参数
自我感觉我是理解了不会讲,不知道该怎样表达,写的乱七八糟的
啥也不是,散会
js延时函数_js自执行函数分享相关推荐
- 【JS基础】立即执行函数表达式(自执行函数)
立即执行函数表达式 立即执行函数表达式,大部分人也称为自执行函数. 自执行函数的写法 匿名函数 (function() {console.log(2) })() 具名函数 (function log( ...
- js匿名函数和立即执行函数
js匿名函数和立即执行函数 1. 匿名函数 a)写法 b) 特点 2. 立即执行函数 a) 写法 b) 特点 c) 示例 1. 匿名函数 匿名函数又叫拉姆达函数, 使用前需要先赋值. a)写法 //h ...
- 匿名函数与自执行函数
匿名函数与自执行函数 匿名函数就是指的没有名字的函数,即定义函数对象时不定义函数体名字,但是必须将匿名函数作为表达式赋予一定操作,比如将其作为变量值或者让其自执行,否则这次定义将无意义,解释器也会抛出 ...
- js 延期执行_js延迟执行函数
在js中,延迟执行函数有两种:setTimeout和setInterval setTimeout("test()","2000"); //2000毫秒后执行te ...
- js 和jQuery(自动执行函数)立即执行函数和页面加载完后执行函数写法
js 立即执行函数的写法. js 立即执行函数只能用于匿名函数,如果声明了函数名是不可以用立即执行的,通常在函数表达式后加一对小括号()用于立即执行 如果想让函数不被调用的情况下,立即自动执行,需要在 ...
- 杂七杂八JS :深入理解 函数、匿名函数、自执行函数
基础概念:定义函数的方式 一般定义函数有两种方式: 1:函数的声明 2:函数表达式 函数的声明 如下代码就是函数声明的代码结构: function sum(x,y){alert(x ...
- JS进阶之---函数,立即执行函数
一.函数 函数声明.函数表达式.匿名函数 函数声明:使用function关键字声明一个函数,再指定一个函数名,叫函数声明.function name () { - } 函数表达式:使用function ...
- JS函数:具名函数、匿名函数、自执行函数
一.具名函数 具名函数,故名思意就是有名字的函数,具名函数一般是我们定义的最多的一种 // 函数 function fn() {console.log('我是具名函数')console.log('看, ...
- JavaScript 函数声明,函数表达式,匿名函数,立即执行函数之区别
函数声明:function fnName () {-};使用function关键字声明一个函数,再指定一个函数名,叫函数声明. 函数表达式 var fnName = function () {-};使 ...
最新文章
- Laravel中Redis的配置和使用
- 191027爬虫笔记
- 眼图在通信系统中有什么意义_解读CRM系统在企业中有什么作用
- tensorflow包_在Keras和Tensorflow中使用深度卷积网络生成Meme(表情包)文本
- 25q64存储多个数据_一篇文章看懂,存储虚拟化在不同用例中的实践与优势
- CSS基础语法(三) CSS的6种特性
- oracle类似sqlcmd工具,Oracle:是否有跟踪查询的工具,例如用于SQL Server的Profiler?...
- VB循环For的一点启示
- RecycleView添加适配器的监听事件
- Confluence 6 数据中心的 SAML 单点登录最佳实践和故障排除
- jdbc连接oracle查询数据库,JDBC连接Oracle数据库,并操作数据库,查询表
- Silverlight在IE中无法显示但在Firefox中正常的原因和解决办法
- php6 配置,thinkphp6下载安装与配置图文详细讲解教程(composer下载安装)
- 蓝桥杯2019年第十届C/C++省赛B组第一题-组队
- 杨格门锁 YGSLockSDK V3.3酒管软件接口_99v
- 2.RabbitMQ实战 --- 理解消息通信
- ImageList00
- 爱荷华州立 计算机博士,2020年美国爱荷华州立大学博士全奖招生
- 后场正手移动跳杀球技术图解
- Redis 12 持久化
热门文章
- java vim ide_把VIM配置成IDE开发环境 | 学步园
- java下传图片到tomcat服务器后,如何在页面显示,java图片上传服务器及客户端显示图片...
- Oracle/PLSQL While Loop
- Java案例:静态内部类
- 2017.9.7 JC loves Mkk 失败总结
- php数值相加_PHP+Redis 有序集合实现 24 小时排行榜实时更新
- 【英语学习】【Daily English】U01 Greetings / L01 Same old, same old
- 设置熄屏_自定义熄屏显示其实很简单
- Summed-Area Variance Soft Shadow Mapping(SAVSM):二
- python三种基本数据类型_Python的三种基本数据类型