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