Javascript 함수 범위 지정 및 호이스팅: 숨겨진 메커니즘 공개
당신은 JavaScript 범위 지정 및 호이스팅과 관련된 당황스러운 예를 발견했습니다. 보다 명확한 이해를 위해 이러한 개념을 더 깊이 파고들어 보겠습니다.
함수 호이스팅
호이스팅은 함수 선언을 포함 범위의 맨 위로 들어 올립니다. 귀하의 예에서:
function b() { a = 10; return; function a() {} }
인터프리터는 이 코드를 다음과 같이 재배열합니다.
function b() { function a() {} a = 10; return; }
이는 내부 함수 a() 선언이 효과적으로 b()의 시작 부분에 배치됨을 의미합니다. 함수는 코드 후반부에 나타나더라도 마찬가지입니다.
변수 범위 지정
JavaScript에서는 변수의 범위를 전역 또는 로컬로 지정할 수 있습니다. 전역 변수는 프로그램 어디에서나 액세스할 수 있는 반면, 지역 변수는 해당 정의 함수의 범위 내에 제한됩니다.
함수 선언의 흥미로운 사례
코드에서 , b() 내의 내부 함수 a() 선언은 즉각적인 함수 호출로 해석됩니다.
var a = function () {};
이것은 효과적으로 전역 a 변수를 섀도우하는 b() 함수의 지역 변수 a.
모두 함께 사용
호이스팅과 변수 범위 지정의 개념을 결합하면 다음을 수행할 수 있습니다. 실행 순서를 다음과 같이 시각화합니다.
위 내용은 JavaScript 함수 호이스팅 및 범위 지정은 변수 할당 및 검색에 어떤 영향을 줍니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!