ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [2019.03.01]javascript에서 함수 선언에 따른 차이점.
    개발 블로깅/Javascript 개념 2019. 3. 1. 23:49

    javascript에서 함수를 선언하는 방식은 기본적으로 두 가지가 있다. (아마 더 있을 수도 있지만..)

    • 변수에 함수를 생성하여 할당하는 방법
    • 그냥 함수를 선언하는 방식이다.

    # 변수에 함수를 할당하는 방법

    1
    2
    3
    var addValue = function(a, b){
        return a + b;
    }
    cs


    # 일반적으로 함수를 선언하는 방법

    1
    2
    3
    function addValue(a, b){
        return a + b;
    }
    cs

    위 두 코드와 같이, 사용하려는 함수를 생성하는 방법이 두 가지가 있다.

    하지만 역시 이 두 가지에 대한 차이점이 있다는 것!


    우선 '변수에 함수를 할당하는 방법'은, 해당 함수를 사용하기 전에, 먼저 그 함수가 위에 선언이 되어야 한다.

    1
    2
    3
    4
    5
    6
    7
    addValue(12); // <- error!!
     
    var addValue = function(a, b){
      return a + b;
    }
     
    addValue(12); // <- 3
    cs

    변수에 함수를 할당하는 방식, 즉 함수 자체가 변수이므로 변수를 먼저 생성을 해 주어야 사용을 할 수 있기 때문인 것 같다.


    이와 반대로, '일반적인 함수를 선언하는 방법'은 순서와 상관없이 그냥 사용하면 된다.

    1
    2
    3
    4
    5
    6
    7
    addValue(12); // <- 3
     
    function addValue(a ,b){
      return a +b;
    }
     
    addValue(12); // <- 3
    cs

    위 코드는 변수까지는 아니고, 그냥 함수로 보기 때문에 가능한 것 같다.


    우선 두 코드의 사용 방식으로만 판단하면, 순서에 제약을 받지 않는 '일반적인 함수를 선언하는 방법'이 확실히 더 편해보인다.

    그런데 후자의 방식도 정말 많이 쓰이는 방식이다. 함수 선언한 코드들을 제일 상단에 배치함으로써 코드의 간결함을 유지할 수 는 있을 것 같다.....만!

    분명히 이러한 이유 말고, 굳이 저 방식을 사용하는 다른 이유가 있을 것 같다...조금 더 찾아봐야겠다...


    ------------------------------------------------------------------------------------------------------------------------

    오늘 온라인 세션 중에 두 함수의 사용성을 물어봤었다. 그런데 차이점의 포인트는 이것이였다!

    # 변수에 함수를 할당하는 방법

    1
    2
    3
    var addValue = function(a, b){
        return a + b;
    }
    cs


    이 방식은, addValue에 다시 function을 정의할 수 있다는 것!!

    함수를 다시 작성하여 쓸 수 있다는 포인트가 다른 것이다아아아아아아!!

    반응형

    댓글

Designed by Tistory.