[JavaScript] 즉시 실행 함수, 타이머 함수, 콜백 함수

hyocho·2022년 10월 5일
0

JavaScript

목록 보기
12/18

즉시 실행 함수 (IIFE)

Immediately-Invoked Function Expression

즉시 실행 함수란?

이름이 없는 익명 함수를 만들자마자 바로 쓰는 경우, 소괄호(())로 함수를 감싸서 실행하는 문법을 사용한다.

(function(){
  console.log("hyocho")
})()

// 화살표 함수로도 사용 가능하다
(() => {
    console.log("hyocho");
})();

소괄호를 두번 이어 쓰기, 소괄호 안에다 소괄호를 넣기
IIFE는 전체 익명함수를 괄호로 감싸줌으로써 내부 코드가 선언문이 아니라 표현식인 것처럼 Parser를 속인다.

즉시 실행 함수의 특징

  1. 정의되자마자 바로 실행된다.
  2. 익명 함수를 사용한다.
    즉시실행함수에도 이름을 붙여 기명 즉시실행함수로 사용 할 수 있다. 하지만 정의하자마자 실행하고 휘발시킬 것이기 때문에 즉시 실행 함수에 함수명을 지어줄 필요가 없다.
  3. 딱 1회만 실행되고 다시는 실행하지 않는다.
  4. 초기화 코드나 모듈화 패턴을 만들 때 유용하게 사용된다.

왜 사용해야 할까?

IIFE는 외부에서 접근할 수 없는 자체 Scope를 형성한다.
상위 Scope에 접근할 수 있으면서도, 내부 변수를 외부로부터 보호해 Privacy를 유지할 수 있다.

따라서 IIFE 사용의 가장 큰 목적은 데이터 프라이버시코드 모듈화라고 할 수 있다.


타이머 함수

일정 시간이 지난 후 특정 코드 또는 함수가 실행될 수 있도록 해주는 함수와 일정 시간마다 함수가 실행될 수 있도록 해주는 함수를 말함.

setTimeout(함수, 시간) / clearTimeout() : 설정된 Timeout을 종료

일정 시간 후 함수 실행 , 시간 단위는 ms

setTimeout(function() {}, 3000){
  console.log('hyocho'
              }, 3000)

setInterval(함수, 시간) / clearInterval() : 설정된 Interval 함수를 종료

시간 간격마다 함수 실행

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

콜백 (callback) 함수

콜백함수는 간단하게 다른 함수에 매개변수로 넘겨준 함수를 말한다.
매개변수로 넘겨받은 함수는 일단 넘겨받고, 때가 되면 나중에 호출(called back)한다는 것이 콜백함수의 개념이다.

시간이 얼마나 걸리는지 모르는 비동기의 방식에서 많이 사용되는 함수이다.

동기/비동기에 대해 배우면 수정하기!

profile
기록하는 습관을 기르고 있습니다.

0개의 댓글