Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- tcp
- nginx
- CI
- workflow
- 이미지 최적화
- SSH
- nextJS
- 리버스 프록시
- pm2
- aws
- 인증서
- certbot
- 검색엔진최적화
- 로드 밸런싱
- webp
- 무중단
- https
- 렌더링 과정
- ec2
- gitgub actions
- 이미지 포맷 변경
- 브라우저
- DNS
- 자동화
- 3-Way HandShake
- SSL
- TLS
- 이미지 압축
- 성능 개선
- 배포
Archives
- Today
- Total
개발일기
함수 호이스팅 본문
개요
변수에 대한 호이스팅은 포스팅 한거 같은데 함수에 대한 호이스팅은 포스팅 하지 않은 것 같다. 생각보다 간단해서 간단간단하게 포스팅 할 예정이다.
호이스팅이란?
JavaScript 호이스팅은 인터프리터가 코드를 실행하기 전에 함수, 변수, 클래스 또는 import의 선언문을 해당 범위의 맨 위로 끌어올리는 것처럼 보이는 현상을 뜻한다.
함수 선언식(Function declarations)
간단하게 함수 선언을 function으로 시작 한다. 함수 선언식은 호이스팅 된다. 아래 예제를 확인하자.
fn1() // Output : "Function declarations"
function fn1 () {
console.log("Function declarations")
}
함수 표현식(Function expresstions)
변수를 선언 하는 것과 같이 let, const를 사용하여 함수를 정의 한다. 함수 표현식은 호이스팅 되지 않는다. 아래 예제를 확인하자.
fn2() // Output : ReferenceError: Cannot access 'fn2' before initialization
const fn2 = function() {
console.log("Function expressions")
}
or
const fn2 = () => {
console.log("Function expressions")
}
마무리
나는 함수 선언식 보다는 함수 표현식인 화살표 함수를 많이 사용한다. 함수 선언식 처럼 어디에 함수를 선언 했던지 어디에서나 사용할 수 있다면 편하겠지만 코드가 길어질수록 많이 혼란 스러울 것 같다. 가끔 공식문서나 블로그에서 보면 함수를 호출할 때 함수를 선언 했던곳 보다 먼저 호출을 해서 헷갈릴 때가 많았는데, 드디어 블로그를 작성하면서 정리가 되는 것 같다.
'Javascript' 카테고리의 다른 글
JavaScript 객체 접근 방식: obj.key vs obj["key"] vs obj[key] 차이 (1) | 2025.04.15 |
---|---|
메서드 기록해두기(split, slice, splice) (0) | 2024.06.10 |
자바스크립트 구조분해할당 (0) | 2024.03.31 |
객체 타입의 얕은 복사와 깊은 복사 (0) | 2024.03.07 |
원시타입과 객체타입 (0) | 2024.03.06 |