728x90

    귀찮아-[이모티콘]어밴드

    자바스크립트는 함수를 어떻게 정의하느냐에 따라

    함수 선언 및 함수 표현식 그리고 익명함수로 분리됩니다.


    1. 함수 선언

    함수 선언이란 script 내부에서 

    아래와 같이 함수를 정의할 때 함수선언이라고 불립니다.

    function javaScriptTEST(){
       //함수 선언
       //구현 로직
    }
    

    함수선언은 기존의 프로그래밍에서 가장 명시적이고 많이 쓰이는 방식입니다.

    브라우저에서 코드를 인식하는 과정 중 제일 처음으로 해석되는 것이 함수 선언입니다.

    그러므로 함수 선언은 script의 위치가 어느 곳에 있어도 브라우저가 인식할 때

    가장 먼저 해석하게 됩니다. 

    프로그램의 순서는 무조건 위에서 아래로, 

    왼쪽에서 오른쪽으로 흘러간다는 개념으로 볼 때

    함수 선언이 밑에 있고 함수 사용을 위에서 해도 

    문제가 되지 않는 다는 의미입니다.


    2. 함수 표현식

    함수 표현식이란 script 내부에서 

    아래와 같이 함수를 정의할 때 함수표현식이라고 불립니다.

         
          var javaScriptTEST = function(){
           //함수 표현식
          }
    

    함수표현식은 함수선언과는 다르게 특정 변수에 함수를 할당하는 것으로

    변수를 참조변수로 사용합니다.

    함수 표현식의 참조변수는 변수이므로

    함수의 인자값으로 전달이 가능합니다.

    함수의 파라미터로 전달이 가능하므로 함수 안에서 함수를 컨트롤 할 수 있습니다.

    즉 콜백 함수로 사용할 수 있습니다.

    그리고 좀 더 들어가면 

    함수 표현식을 통해서 클로져도 사용할 수 있습니다.

    (클로져와 관련된 부분은 아래 링크를 클릭하세요.)

    바로가기


    함수표현식은 함수선언과는 다르게 

    페이지 내부의 함수선언이 모두 해석된 다음에 

    함수표현식이 해석됩니다. 

    (프로그램의 흐름도가 달라질 수 있으므로 매우 중요함!)




    3. 익명 함수

    익명함수란 말 그대로 함수에 이름이 없는 것을 말합니다.

    단 한번 사용되는 함수에 주로 익명함수를 사용합니다.

    익명함수를 사용함으로써 코드의 간결함과 중복될 수 있는 함수명을 피할 수 있습니다.

    아래와 같이 함수를 정의할 때 익명 함수라고 불립니다.

         
        setTimeout( function(){
           //익명 함수
          
        }, 1000);
    
         //or
    
        window.onload = function() { 
          //익명 함수 
        }
    


    위의 코드처럼 setTimeout함수는 1초 후

    ( 1000은 ms를 뜻하므로 1초입니다. 

    단위(시, 분, 초 ms ,us ,ns) 변환에 대해 궁금하시다면 아래 링크를 클릭하세요. )

    단위변환 바로가기


    첫번째 파라미터의 함수를 실행합니다.

    onload는 window 객체에 내장된 속성으로

    페이지 로드시 한번 실행되는 속성을 가지고 있습니다.

    함수가 필요한 부분에 한번 만 실행되는 것이라면 

    익명 함수로 사용하는게 코드를 간결하고

    프로그램의 응집도를 높게 할 수 있는 방법이 됩니다.


    익명 함수를 특정 변수에 대입한다면 그 함수는 함수표현식이 되겠네요.


    '공감' 및 '좋아요'는 글쓴이에게 큰 힘이 됩니다!

    블로그 구독도 부탁드립니다.(네이버이웃 추가)



    Posted by 천상나타