호이스팅

:D ·2021년 11월 30일
1

JavaScript✌️

목록 보기
4/14
post-thumbnail

📌 You don't know JS와 https://poiemaweb.com/ 를 참고하여 작성한 글입니다.

호이스팅이 무엇일까요??!!🤔

변수와 함수 선언문이 선언된 위치에서 코드의 꼭대기로 끌어올려지는것과 같은 현상이 호이스팅입니당..!! (실제는 아님, 그런것 같아 보이는 것 뿐)

코드 실행 전 이미 변수선언/함수선언이 메모리에 저장되어 있기 때문에 선언문보다 참조/호출이 먼저 나와도 오류 없이 동작한다.(정확히는 var 키워드로 선언한 변수와 함수 선언문일 경우 오류 없이 동작한다.)이는 선언이 파일의 맨 위로 끌어올려진 것 처럼 보이게 한다.

  • 변수는 선언부만
  • 함수선언문은 함수 전체

1. 호이스팅은 스코프별로 작동합니다.!

2. 변수와 함수 선언문만 호이스팅 됩니다! (함수 표현식은 호이스팅 되지않습니다!)

// 5000번째 줄
console.log(sum(1,2)); // 5
function sum (a,b){
  return a+b;
}

// 20000번째 줄
console.log(sum(1,2)); // 5
function sum (a,b){
  return a+2*b;
}

함수 선언문보다는 함수 표현식을 사용하자..!

동일한 함수 이름을 쓰면 호이스팅 될때 덮어쓰게 되므로 버그 발생 위험이 높아진다.

3. 함수가 먼저 끌어올려지고 그 다음 변수가 끌어올려집니다.!

profile
강지영입니...🐿️

0개의 댓글