ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 익명 함수, 선언적 함수
    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

    댓글