본문 바로가기

JavaScript/Reference

[JS] 웹 브라우저가 자바 스크립트의 선언적 함수와 익명 함수 읽는 순서

반응형

출처 - 모던 웹을 위한 JavaScript + jQuery 입문 (저자 - 윤인성)

함수();

var 함수 = function () { alert("함수 A"); };

var 함수 = function () { alert("함수 B"); };

위와 같은 코드는 변수를 선언하기 이전에 변수를 사용했기 때문에 오류가 발생해 실행되지 않습니다.

하지만,

함수();

function 함수() { alert("함수 A"); };

function 함수() { alert("함수 B"); };

위와 같은 코드는 웹 브라우저가 script 태그 내부의 내용을 읽기 전에 선언적 함수부터 읽기 때문에 정상적으로 코드가 실행됩니다.

따라서,

var 함수 = function () { alert("함수 A"); };

function 함수() { alert("함수 B"); };

함수();

위와 같은 코드가 있으면 선언적 함수가 먼저 분석되기 때문에 상대적으로 더 나중에 분석되는 익명 함수가 호출 됩니다.

반응형