【Day 27】JavaScript 回呼函式(callback function)

回呼函式,或简称回调、回呼(Callback 即call then back 被主函式呼叫运算後会返回主函式),是指通过参数将函式传递到另一个函式的函式。它会在外部函式内运行、以完成某些事情。

为何要使用CallBack?
要理解JavaScript是如何执行程序,首先要先理解同步( Synchronous , sync )与异步( Asynchronous , async )程序执行的差异。

同步执行,意思就是一次只能做一件事情,如果安排了很多事情要给他做,他就会让这些事情去排队,再一件一件做,逐行执行。 这就是所谓的同步,一次只做一件事情。 一旦主程序需要执行超长任务时,会有等待的时间或延迟的问题,这样便会影响到後续程序的执行,造成阻塞的情况发生以及时间的浪费。

异步的概念则是刚好相反,同时可以做很多件事情,不需要等到前一件事情做完才做下一件事情。

setTimeout() 与 setInterval()

根据 MDN 定义 setTimeout() 的作用 是在延迟了某段时间 (单位为毫秒) 之後,才去执行「一次」
而 setInterval() 则是固定延迟了某段时间之後,才去执行对应的程序码,然後「不断循环」。

function first(){
  console.log('This is first funtion');
}

function second(fn){
  for(let i = 1; i <= 1 ; i++){
    console.log('This is second funtion');
  }
  if(typeof fn ==='function')
    fn();  
}

console.log('一般函式: ')
first()
second()

console.log('回呼函式,function first 被function second(f)以参数的方式传入到second(fn)里: ')
second(first);

//每隔几毫秒做1次
setInterval( first , 2*1000 );

//几毫秒之後做这件事
setTimeout( first , 2*1000 );

<<:  [Day - 12] - Spring 注入式效能提升运作与方法

>>:  [Day 13] Reactive Programming - Reactor(Processors & Sinks)

Day 4 - 用 canvas 复刻 小画家 填入色彩, 橡皮擦

填满色彩 在点击画布时,使用 fillStyle 先填上颜色,再覆盖整个画布 /** * 滑鼠点下画...

Day 24 尽情的自我发挥吧!

2021/10/5是我在铁人赛发文到达200篇的日子,这四年多来,不知不觉的就这样累积了200篇的文...

中阶魔法 - 提升 Hoisting

前情提要 艾草:「我们今天来提升一下吧!」 「不是每天都在提升魔力总量了吗?」 艾草:「不一样唷,今...

Day 24 - 云端服务评估业务篇

从入职到现在也帮助部门开发了许多的平台和应用服务,而原本虚拟主机的签约也快到期了,然而前阵子除了接触...

[DAY9]观察heroku logs

既然我们上传成功了,那麽接着就是要观察我们的结果啦!! 第一步:打开CMD进入资料夹登入heroku...