JavaScript定时器及其箭头函数指向

1,090 阅读1分钟

简介

定时器不仅会在面试中基础考点中会碰到,也会在项目中会起到实时刷新的作用,所以还是比较常用的一个语法知识,并且定时器都会伴随着箭头函数一起使用,本篇文章仅仅扩展定时器的箭头函数指向问题

定时器

1. setTimeout()

1.1 作用:延迟定时器,只会循环一次。
1.2
普通函数用法:

  var timer1=setTimeout(function(){  
   console.log('我是延迟定时器')  
   },1000)

箭头函数用法:

 var timer1=setTimeout(()=>{  
  console.log('我是延迟定时器')  
  },1000)

1.3 清除定时器(定时器是直接执行的,为了优化性能在使用完每一帧定时器都要清除掉,因此要命名并方便后续清除):
clearTimeout(timer)

2.setInterval()

1.1 作用:循环定时器,循环多次
1.2
普通函数用法:

var timer2=setInterval(function(){
 console.log('我是循环定时器')
 },1000)

箭头函数用法:

  var timer2=setInterval(()=>{
     console.log('我是循环定时器')
   },1000)

2.3 清除定时器:
clearInterval(time2)

3.关于定时器的参数

定时器可以接收多个参数:
第一个参数:执行的函数,不可省略。
第二个参数:定时器所执行的毫秒数,可省略。
第三个参数及之后的参数:都将是第一个参数函数执行的实参

定时器的箭头函数指向

1.1 箭头函数是ES6提出函数语法糖,可以简化普通函数的写法,并且与普通函数的区别为:箭头函数中的this指向是固定不变的,一直指向的是定义函数的环境。
1.2 没有特殊情况时,setInterval和setTimeout的回调函数中this的指向都是window,因此箭头函数通常可伴随着定时器一起使用。