흥미로운 예를 통한 JavaScript 호이스팅 및 범위 지정 이해
최근 기사에서 Ben Cherry는 최근 기사에서 호이스팅 및 범위 지정에 대한 JavaScript의 흥미로운 개념을 조명했습니다. . 설명을 위해 그는 다음 코드를 제시합니다.
var a = 1; function b() { a = 10; return; function a() {} } b(); alert(a);
기대 대 현실
직관적으로 경고에 "10"이 표시될 것으로 예상할 수 있습니다. b 내에서 선언됩니다. 그러나 브라우저에는 대신 "1"이 표시됩니다.
호이스팅 및 범위 지정 자세히 알아보기
호이스팅은 함수가 해당 범위의 최상위로 이동하는 현상입니다. 이는 다음 코드가 인터프리터에 의해 다시 작성된다는 것을 의미합니다.
function b() { a = 10; return; function a() {} }
흥미롭게도 JavaScript에서는 함수 a() {} 구문을 사용하여 함수 내에서 변수 선언을 허용합니다. 이는 var a = function () {};과 동일합니다.
실행 순서 이해
코드는 기본적으로 다음과 같이 작동합니다.
따라서 경고는 전역 변수 a는 함수 내에서 지역 변수 a에 대한 변경 사항에 영향을 받지 않으므로 "10" 대신 "1"을 표시합니다.
위 내용은 이 JavaScript 코드는 왜 '10' 대신 '1'을 경고합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!