다음 코드:
실행 후에는 출력이 정의되지 않습니다.
if 조건을 제거한 후 두 번째 함수가 출력됩니다
함수가 개선되었다는 사실을 알고 두 번째 코드에서는 두 번째 함수가 console.log(a) 코드 이전으로 승격되므로 두 번째 함수가 실행되어 출력됩니다. 하지만 첫 번째 코드에서는 왜 정의되지 않음이 출력되는지 이해가 되지 않습니다.
조건부 함수 선언은 함수 표현식과 동일한 방식으로 처리됩니다. 따라서 조건부 함수 선언은 함수 선언의 호이스팅 속성을 잃습니다.
참조 URL: /q/10...
if else 문에서 function 키워드를 사용하여 함수를 선언할 때 변수 승격은 브라우저마다 다릅니다. 단지 변수 선언이 여기서 승격되고 else가 제거되면 순수 함수 범위가 됩니다.
IIFE에서
는 함수 선언이 아닌 함수 선언입니다. if를 제거하면 함수 선언입니다. conosle.log(a)는 정의되지 않은 변수 a를 나타냅니다. https://developer를 참조하세요. mozilla.org..
조건부 함수 선언은 함수 표현식과 동일한 방식으로 처리됩니다. 따라서 조건부 함수 선언은 함수 선언의 호이스팅 속성을 잃습니다.
참조 URL: /q/10...
if else 문에서 function 키워드를 사용하여 함수를 선언할 때 변수 승격은 브라우저마다 다릅니다. 단지 변수 선언이 여기서 승격되고 else가 제거되면 순수 함수 범위가 됩니다.
으아악IIFE에서
으아악는 함수 선언이 아닌 함수 선언입니다. if를 제거하면 함수 선언입니다. conosle.log(a)는 정의되지 않은 변수 a를 나타냅니다. https://developer를 참조하세요. mozilla.org..