Development Tip

JavaScript가 변수를 끌어 올리는 이유는 무엇입니까?

yourdevel 2020. 10. 27. 23:34
반응형

JavaScript가 변수를 끌어 올리는 이유는 무엇입니까?


JavaScript가 변수를 끌어 올리는 이유는 무엇입니까?

설계자가 호이 스팅을 구현하기로 결정한 이유는 무엇입니까? 이 작업을 수행하는 다른 인기있는 언어가 있습니까?

문서 및 / 또는 기록에 대한 관련 링크를 제공하십시오.


Stoyan Stefanov가 "JavaScript Patterns"책에서 설명했듯이, 게양은 JavaScript 인터프리터 구현의 결과입니다.

두 단계로 수행되는 JS 코드 해석. 첫 번째 패스 동안 인터프리터는 변수 및 함수 선언을 처리합니다.

두 번째 단계는 실제 코드 실행 단계입니다. 인터프리터는 함수 식과 선언되지 않은 변수를 처리합니다.

따라서 이러한 동작을 설명하기 위해 "게양"개념을 사용할 수 있습니다.


이는 자바 스크립트 인터프리터가 두 주기로 코드를 해석하기 때문입니다.

  1. 코드 완성 / 컴파일 :
  2. 코드 실행 :

첫 번째 사이클에서 모든 변수 및 함수 선언은 실행중인 함수 범위의 맨 위로 이동합니다. 이는 실행되기 전에 variableObjectsfor execution context함수 를 만드는 데 도움이됩니다 .

2 단계에서는 값 할당, 코드 문 및 함수 호출이 예상되는 방식으로 한 줄씩 발생합니다.

여기 에서 좀 더 자세히 읽을 수 있습니다.

그것은 당신에게 행동 약 더 나은 사진을 줄 것이다 let, const그리고 class선언은 변수와 함수 사이에 다음과 같은 우선 순위를.

참고 URL : https://stackoverflow.com/questions/15005098/why-does-javascript-hoist-variables

반응형