www.qjdy.com-奇迹赌场 > www.qjdy.com官网 > 依次打印数值的例子.其实在早期的时候

原标题:依次打印数值的例子.其实在早期的时候

浏览次数:96 时间:2019-07-14

作者们这一次使用setTimeout来实现三个奉公守法时间定期,依次打字与印刷数值的例子.其实在开始的一段时期的时候,也是本身时常犯的三个不当,或然达成这种力量,仿佛js相比牵强,其实是本身的错,哈哈!未能精晓JS强大之处.大家直接走入正题吧!   注意,倘诺用setInterval来兑现的话,那必将相当粗略,此番大家是采取setTimeout.   大家先从最简易思维入手.那就能写出上边的代码.

for(var i = 0; i < 5; i  )
{ 
setTimeout(console.log(i),i*1000); 
} 

这段代码就算各类打字与印刷了,每一个i的值0,1,2,3,4.只是,实施的年月却尚未起功能.为何呢? 因为 console.log() 是办法的奉行调用,在调用那个法子后,当是立即实行!,所以未有到达大家预料的指标。  

那大家后续看下边一段代码

for(var i = 0; i< 5; i   ){ setTimeout(function(){ console.log(i); },i*1000); } 

此地大家应用三个佚名函数富含了打印的console.log来打字与印刷i,所以 i那几个值是共享的,还没等到实施第贰个setTimeout的时候,for循环已经施行到位,最终的i = 5,所以i 会打字与印刷四遍   其实大家二种消除办法,大家先来看率先种:

var j = 0; function abc(){ console.log("j = " j); j  ; }  
for(var i = 0; i < 10; i   ){ 
setTimeout(abc,i*1000) } 

此处大家其它三个全局变量来囤积值,每实践三回函数abc,j就加一回,所以实行到setTimeout的时候,就能够调用abc函数,所以会完毕我们预料的效能,不过此地那些j是叁个全局变量,全局变量会造成轻松改动其值也许命名争论等主题材料.   第二种方法的达成,我们再次引进闭包函数.因为闭包函数,每回创造都会存在三个融洽的空间来累积独一的值.所以利用那一个思维.大家把代码写成下边包车型地铁代码.

for(var i = 0; i < 10; i   )
{ 
(function(x){ setTimeout(function()
{ 
console.log(x) },x*1000) })(i) 
}  

大家将i的每三回施行for循环的值,传给区别创立的闭包函数,那样每二个闭包函数里积攒的i值,就都不会同样.所以就是高达我们的想要的结果.

ps:使用闭包对setTimeout实行简要包装

在写js脚本时,平常会用到有的拼写函数的情况,举例调用setTimeout

var msgalert="test"; 
 function TestAlert(msg) 
   { 
    alert(msg) 
   } 

   $(document).ready(function () { 
  $("#btnCancel").click(function (e) { 
    setTimeout("TestAlert(" msgalert ")",1000); 
    }); 
}) 

查了很短日子,为啥正是弹不出对话框呢。检查了相当长日子才意识,原本是少了一对单引号

$(document).ready(function () { 
  $("#btnCancel").click(function (e) { 
    setTimeout("TestAlert('" msgalert "')",1000); 
    }); 
}) 

如此的写法轻巧出错,还不易于检查出错误,假诺运用闭包就可完全制止,改写如下

 var msgalert="test"; 
  function dalayAlert(msg ,time){  
  setTimeout( 
  TestAlert(msg), 
  time 
  ); 
  }  
 function TestAlert(msg) 
 { 
  alert(msg) 
 } 
$(document).ready(function () {   
$("#btnCancel").click(function (e) { 
   dalayAlert(msgalert,1000) 
 }); 

是因为采用了闭包,也简要了重重,检查错误也很轻易了

你只怕感兴趣的篇章:

  • js调用打字与印刷机打字与印刷网页字中华全国体育总会是裁减一号的消除办法
  • JS打字与印刷组合功效
  • JavaScript调用浏览器打字与印刷功效实例解析
  • JS 打字与印刷功用代码可实现打字与印刷预览、打字与印刷设置等
  • javascript打字与印刷html内容功效的艺术自己要作为典范遵守规则
  • js达成页面打字与印刷功效实例代码(附去页眉页脚功效代码)
  • 代码实现打字与印刷成效(asp.net javascript)
  • JS调用打字与印刷机成效简单示例

本文由www.qjdy.com-奇迹赌场发布于www.qjdy.com官网,转载请注明出处:依次打印数值的例子.其实在早期的时候

关键词: mg娱乐场4355

上一篇:www.qjdy.com阅读目录

下一篇:没有了