반응형
javascript에서 즉시 실행함수는 아래와 같은 형식을 가집니다.
//정의
(() => {
console.log('test')
})
//정의와 실행 동시에
(() => {
console.log('test')
})()
()을 붙이면 실행도 하고, 붙이지 않으면 정의만 합니다.
그런데, 즉시 실행 함수를 사용하다 종종 에러가 발생합니다.
'....is not a function'
인데요. 왜 발생할까요?
원인은 ;에 있었습니다. javascript가 주는 편리함중 하나는 ;를 쓰지 않아도, 언어 자체에서 ;처리를 합니다. 그래서 ;를 쓰는 습관이 줄었고, ;로 끝나지 않은 코드에 즉시 실행 함수를 실행하니 에러가 발생한 것이었습니다.
//err
console.log('err?')
(() => {
console.log('test')
})
//not err
console.log('err?');
(() => {
console.log('test')
})
결론:
즉시 실행 함수를 쓰기전, ;를 잊지말아야 합니다
감사합니다
'개발' 카테고리의 다른 글
http-only cookie in javascript (0) | 2021.06.10 |
---|---|
next.js에서 csr (0) | 2021.03.16 |
port already issue in linux (0) | 2021.02.24 |
유용한 공백 (0) | 2021.02.21 |
지역 변수와 전역 변수 in javascript (0) | 2021.02.21 |