自执行函数是从哪里了解到的呢,从学习延时器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自执行函数分享相关推荐

  1. 【JS基础】立即执行函数表达式(自执行函数)

    立即执行函数表达式 立即执行函数表达式,大部分人也称为自执行函数. 自执行函数的写法 匿名函数 (function() {console.log(2) })() 具名函数 (function log( ...

  2. js匿名函数和立即执行函数

    js匿名函数和立即执行函数 1. 匿名函数 a)写法 b) 特点 2. 立即执行函数 a) 写法 b) 特点 c) 示例 1. 匿名函数 匿名函数又叫拉姆达函数, 使用前需要先赋值. a)写法 //h ...

  3. 匿名函数与自执行函数

    匿名函数与自执行函数 匿名函数就是指的没有名字的函数,即定义函数对象时不定义函数体名字,但是必须将匿名函数作为表达式赋予一定操作,比如将其作为变量值或者让其自执行,否则这次定义将无意义,解释器也会抛出 ...

  4. js 延期执行_js延迟执行函数

    在js中,延迟执行函数有两种:setTimeout和setInterval setTimeout("test()","2000"); //2000毫秒后执行te ...

  5. js 和jQuery(自动执行函数)立即执行函数和页面加载完后执行函数写法

    js 立即执行函数的写法. js 立即执行函数只能用于匿名函数,如果声明了函数名是不可以用立即执行的,通常在函数表达式后加一对小括号()用于立即执行 如果想让函数不被调用的情况下,立即自动执行,需要在 ...

  6. 杂七杂八JS :深入理解 函数、匿名函数、自执行函数

    基础概念:定义函数的方式   一般定义函数有两种方式:     1:函数的声明     2:函数表达式 函数的声明 如下代码就是函数声明的代码结构: function sum(x,y){alert(x ...

  7. JS进阶之---函数,立即执行函数

    一.函数 函数声明.函数表达式.匿名函数 函数声明:使用function关键字声明一个函数,再指定一个函数名,叫函数声明.function name () { - } 函数表达式:使用function ...

  8. JS函数:具名函数、匿名函数、自执行函数

    一.具名函数 具名函数,故名思意就是有名字的函数,具名函数一般是我们定义的最多的一种 // 函数 function fn() {console.log('我是具名函数')console.log('看, ...

  9. JavaScript 函数声明,函数表达式,匿名函数,立即执行函数之区别

    函数声明:function fnName () {-};使用function关键字声明一个函数,再指定一个函数名,叫函数声明. 函数表达式 var fnName = function () {-};使 ...

最新文章

  1. Laravel中Redis的配置和使用
  2. 191027爬虫笔记
  3. 眼图在通信系统中有什么意义_解读CRM系统在企业中有什么作用
  4. tensorflow包_在Keras和Tensorflow中使用深度卷积网络生成Meme(表情包)文本
  5. 25q64存储多个数据_一篇文章看懂,存储虚拟化在不同用例中的实践与优势
  6. CSS基础语法(三) CSS的6种特性
  7. oracle类似sqlcmd工具,Oracle:是否有跟踪查询的工具,例如用于SQL Server的Profiler?...
  8. VB循环For的一点启示
  9. RecycleView添加适配器的监听事件
  10. Confluence 6 数据中心的 SAML 单点登录最佳实践和故障排除
  11. jdbc连接oracle查询数据库,JDBC连接Oracle数据库,并操作数据库,查询表
  12. Silverlight在IE中无法显示但在Firefox中正常的原因和解决办法
  13. php6 配置,thinkphp6下载安装与配置图文详细讲解教程(composer下载安装)
  14. 蓝桥杯2019年第十届C/C++省赛B组第一题-组队
  15. 杨格门锁 YGSLockSDK V3.3酒管软件接口_99v
  16. 2.RabbitMQ实战 --- 理解消息通信
  17. ImageList00
  18. 爱荷华州立 计算机博士,2020年美国爱荷华州立大学博士全奖招生
  19. 后场正手移动跳杀球技术图解
  20. Redis 12 持久化

热门文章

  1. java vim ide_把VIM配置成IDE开发环境 | 学步园
  2. java下传图片到tomcat服务器后,如何在页面显示,java图片上传服务器及客户端显示图片...
  3. Oracle/PLSQL While Loop
  4. Java案例:静态内部类
  5. 2017.9.7 JC loves Mkk 失败总结
  6. php数值相加_PHP+Redis 有序集合实现 24 小时排行榜实时更新
  7. 【英语学习】【Daily English】U01 Greetings / L01 Same old, same old
  8. 设置熄屏_自定义熄屏显示其实很简单
  9. Summed-Area Variance Soft Shadow Mapping(SAVSM):二
  10. python三种基本数据类型_Python的三种基本数据类型