-
익명 함수, 선언적 함수Note 2021. 4. 5. 18:00
익명 함수
말 그대로 이름이 없는 함수
function () { alert('hello') }
익명 함수를 선언하고 사용하기 위해서는 변수에 넣어서 사용하여야 한다.
let func = function () { alert('hello') } // 실행 func();
선언적 함수
선언적 함수는 함수를 선언할 때 이름을 붙여주는 함수를 말한다.
따로 변수에 넣어주지 않고 선언할 때 붙여준 이름으로 호출하면 된다.
function say() { alert('hello') } // 실행 say();
익명 함수와 선언적 함수의 차이
둘 다 함수를 생성하는 방법이지만 차이가 있다.
그 차이는 웹브라우저가 script 태그 내부의 내용을 위에서부터 한 줄씩 읽기 전에 선언적 함수부터 먼저 읽는다는 것이다.
아래 코드가 실행되면 오류가 발생한다.
<script> say(); let say = function () {alert('Hello')}; </script>
오류가 나는 이유는 웹브라우저는 코드를 읽을 때 위부터 읽어 내려가는데, 익명 함수를 저장한 변수를 선언하기 전에 그 변수를 사용했기 때문이다.
하지만 다음 코드는 오류가 발생하지 않는다.
<script> say(); function say() {alert('Hello')}; </script>
선언적 함수는 웹브라우저가 가장 먼저 읽고, 익명 함수는 그 뒤에 코드를 차례로 읽을 때 읽는다.
'Note' 카테고리의 다른 글
Transaction(트랜잭션) (0) 2021.04.07 Infinity, NaN (0) 2021.04.06 Webpack (0) 2021.04.01 정규 표현식 (0) 2021.04.01 크롬으로 모바일 키보드 테스트 (0) 2021.03.31