TIL(20.02.18) JavaScript(Hoisting(호이스팅))

이민택·2020년 2월 18일
2

TIL

목록 보기
3/44

Hoisting(호이스팅)

호이스팅이란 자바스크립트 엔진이 코드를 컴파일 단계에서 변수와 함수의 선언을 메모리에 할당하는 과정을 말한다 이렇게 메모리에 올려지면 함수를 실제로 선언한 위치 위에서 해당 함수를 호출할 수 있다는 장점이 있다 예를 들어 보겠다

코드를 입력하세요
console.log(myName('leemintaek'));


function myName(name){
  return 'my name is"+name;
}

위 코드를 실행 시켜 보면 정상적으로 출력되는 것을 알 수 있다

Hoisting을 방지하는 방법

hoisting 이 이렇게 보통의 절차지향 언어가 작동하는 방식과 다르게 사용되다 보니 선언만 되고 초기화 되지 않고 사용되어 undefined 값이 적용되는 경우가 있다 이를 예방하기 위해 ES6부터는
변수를 선헌할 때 let,const를 이용할 수 있게 되었다

변수 선언 예방 방법

let은 호이스팅이 일어나지 않고 변수 재선언 또한 일어나지 않는다 const의 경우는 변수를 선언하고 할당하면 재선언,재할당이 안된다 변수 선언에는 이런 방식으로 예방이 가능하다

함수 선언 방식 예방법

함수 선언 방식의 호이스팅을 예방하기 위해서는 함수 표현식을 사용하면된다 함수 표현식을 예로 들어 보겠다

코드를 입력하세요

let myName=function(name){
  return 'my name is"+name;
}

console.log(myName('leemintaek'));

이와 같이 사용하면 함수의 호이스팅을 예방할 수 있다

profile
데이터에 소외된 계층을 위해 일을 하는 개발자를 꿈꾸는 학생입니다

0개의 댓글