반응형
일단 함수에 대해 간략히 알아보자. 우리는 자바스크립트에서 var을 통해 변수를 생성한다. 변수 안에는 '데이터' 는 들어갈 수 있지만 '코드' 는 들어갈 수 없다. 함수를 이용하면 메모리에 코드를 저장하였다가 자신이 원할때 해당 함수를 호출해서 사용할 수 있다. 함수에 코드를 저장한것을 '함수 정의문'이라고 명칭한다. 변수를 선언할 때는 var을 썼듯이 함수를 선언할 때는 fucntion을 통해 선언을 해준다.자바스크립트의 함수에는 두 가지 유형이 존재한다.
-일반 함수 : 일반적인 함수 선언법 - function + 함수명() + {코드}
1 2 | fuction 함수명(){ } | cs |
-익명함수 : 일반함수와 달리 함수를 참조변수 안에 넣은것을 볼 수 있다. 참조변수가 곧 함수명이 되는것이다.
1 2 | var variable = function(){ } | cs |
이렇게 만든 함수를 사용하기 위해서는 함수명() 혹은 참조변수() 를 통해서 호출 할 수 있다. 이 일반함수와 익명함수의 차이점으로 가장 크게 보면 형태의 차이점을 말할 수 도 있지만 더 큰 차이점은 바로 호이스팅(Hoisting)기능을 지원하는가 지원하지 않는가의 차이가 가장 크다. Hoisting이란 사전적 의미는 물건을 끌어 올리는것을 의미한다. 호이스팅이 적용되면 함수 정의문보다 호출문이 먼저나와도 함수 정의문을 호출문이 끌어올려서 함수를 호출할 수 있다. 일반 함수는 호이스팅을 지원하는 반면, 익명함수는 호이스팅을 지원하지 않는다. 그림으로 원리를 보면 다음과 같다.
반응형
'Web Basic > JavaScript' 카테고리의 다른 글
참조에 의한 전달과 외부상태의 변경 (0) | 2021.12.06 |
---|