Javascript에는 선언적 함수와 익명 함수가 있다.
선언적 함수는
function 함수() {}
이런 함수를 선언적 함수라 하며,
익명 함수는
var 함수 = function(){ }
이런 함수를 익명 함수라 한다.
선언적 함수와 익명 함수는 조금의 차이가 있는데,
선언적 함수의 예를 보자.
<script>
함수();
function 함수() {alert("함수A");}
function 함수() {alert("함수B");}
</script>
위의 예제에서 함수()는 함수B 이다. 라는 alert이 출력된다.
* 웹 브라우저는 script 태그 내부의 내용을 한 줄씩 읽기 전에 선언적 함수부터 읽기 때문.
그래서 2 -> 3 -> 1번째(함수();) 순으로 읽게 된다.
익명 함수의 예를 보자.
<script>
함수();
var 함수 = function(){ alert("함수A");}
var 함수 = function(){ alert("함수B");}
</script>
이는 에러가 나게 된다.
이유는 변수를 선언하기 전에 함수를 호출했기 때문에..