#TIL14 (6)

전혜린·2021년 8월 6일
0

Today I Learned

목록 보기
19/64

즉시실행함수(IIFE)

  • IIFE, Immediately-Invoked Function Expression

  • 익명함수를 만들자마자 그자리에서 바로 실행해서 동작 시킬 수 있는 방법

  • 함수를 만들고나서 한 번만 실행하고 이후 사용하지 않을 경우에 유용

  • 1번 방식
    (function () {
    console.log(a*2)
    })();

  • 2번 방식 - 권장
    (function () {
    console.log(a*2)
    }());

호이스팅(Hoisting)

  • 함수 선언부가 유효범위 최상단으로 끌어올려지는현상(표현x 선언o)
  • 함수선언 부분을 밑에다가 작성을 해도 그 위에서 호출 가능
  • 익명함수를 통한 함수 표현시에는 불가
  • 호이스팅이라는 현상을 이용해서 함수의 이름만 보고도 대략적인 함수의 로직을 추측해 볼 수 있기 때문에 많이 사용함

const a = 7

double() // 기명함수는 먼저 호출 가능

function double() {
console.log(a * 2)
}

타이머함수

  • setTimeout(함수, 시간): 일정 시간 후 함수 실행
  • setInterval(함수, 시간): 시간 간격마다 함수 실행
  • 시간부분에서 사용되는 단위 ms(1000ms = 1초)
  • clearTimeout(): 설정된 Timeout 함수 종료
  • clearInterval(): 설정된 Interval 함수 종료
     

const timer = setTimeout(() => {
console.log('hello')
}, 3000)

const h1El = document.querySelector('h1')
h1El.addEventListener('click', () => {
clearTimeout(timer)
})

혹은

const timer = setInterval(() => {
console.log('hello')
}, 3000)

const h1El = document.querySelector('h1')

h1El.addEventListener('click', () => {
clearInterval(timer)
})

콜백(Callback)

  • 함수의 인수로 사용되는 함수
     

function timeout(callback) {
setTimeout(() => {
console.log('hello')
callback()
}, 3000)
}

timeout(() => {
console.log('world')
})

profile
코딩쪼아

0개의 댓글