Immediately-Invoked Function Expression
이름이 없는 익명 함수를 만들자마자 바로 쓰는 경우, 소괄호(())로 함수를 감싸서 실행하는 문법을 사용한다.
(function(){
console.log("hyocho")
})()
// 화살표 함수로도 사용 가능하다
(() => {
console.log("hyocho");
})();
소괄호를 두번 이어 쓰기, 소괄호 안에다 소괄호를 넣기
IIFE는 전체 익명함수를 괄호로 감싸줌으로써 내부 코드가 선언문이 아니라 표현식인 것처럼 Parser를 속인다.
IIFE는 외부에서 접근할 수 없는 자체 Scope를 형성한다.
상위 Scope에 접근할 수 있으면서도, 내부 변수를 외부로부터 보호해 Privacy를 유지할 수 있다.
따라서 IIFE 사용의 가장 큰 목적은 데이터 프라이버시와 코드 모듈화라고 할 수 있다.
일정 시간이 지난 후 특정 코드 또는 함수가 실행될 수 있도록 해주는 함수와 일정 시간마다 함수가 실행될 수 있도록 해주는 함수를 말함.
일정 시간 후 함수 실행 , 시간 단위는 ms
setTimeout(function() {}, 3000){
console.log('hyocho'
}, 3000)
시간 간격마다 함수 실행
const timer = setTimeout(() {} =>
console.log('hyocho'
}, 3000)
콜백함수는 간단하게 다른 함수에 매개변수로 넘겨준 함수를 말한다.
매개변수로 넘겨받은 함수는 일단 넘겨받고, 때가 되면 나중에 호출(called back)한다는 것이 콜백함수의 개념이다.
시간이 얼마나 걸리는지 모르는 비동기의 방식에서 많이 사용되는 함수이다.
동기/비동기에 대해 배우면 수정하기!