JavaScript의 함수 정의 방식

안희수·2021년 2월 1일
0

생활코딩 영상을 보면서 JavaScirpt의 함수정의 방식을 설명하던 중
JavaScirpt는 함수형 언어이다 라는 표현을 보게 되었는데
함수형 프로그래밍에 대한 경우는 조금 더 고차원 적으로 다뤄야 할 필요가 있을 것 같아 본 게시글에서 아직 다루지는 않고 함수를 정의하는 방식에 대해서만 보고자 한다.

우선 이전에 C#이나 Java 에서 내가 사용해왔던 함수
Java에서는 Method 라고 하던데
거기서 정의 방식은 이렇게 사용했었다.

C#
접근(제어)자,반환형태,함수명,인자
public void Function (int a)
{
console.wirteline(a); // 실행할 내용
return;
void가 아니라 데이터 형을 명시할 경우
동일한 데이터형으로 반환해야 함

}
//클래스 상으로만 놓고 보자면 Java도 동일하지만 미묘하게 다른 부분도 있다.

Python

def Function(int a) :
return a

print(Function)
// 파이썬의 경우는 중괄호로 감싸는 것이 없다는 것에서도 생소함을 느꼈다


이에 비해 JavaScript에 경우 3가지로 함수를 정의한다

  1. 기본적인 형태
    (function)함수라는의미, 함수명
    function Function (parameter) {
    return a + 1; 반환값
    }
    var a = 1;
    Function(a);

  2. 변수에 함수를 정의하는 형태
    (function)함수라는의미, 함수명
    var a =
    function Function (parameter) {
    alert(a + 1);
    return; 반환값 없이 Function을 실행하고 return 처리 할 수도 있음
    }

여기서 기존 객체지향 언어인 C#과 Java에서는 변수는 변수이고
변수에 함수를 대입하는 것은 사용해 본 적이 없었는데
변수 자체에 함수를 대입하여 실행할 수 있다는 점에서 놀라웠다.

하지만 더 놀라웠던 것은 다음에 나올
익명함수라는 함수정의 방법이다.

  1. 익명 함수
    (function Function(parameter){
    document.write(parameter);
    })();

익명함수에 경우 재사용의 목적인 함수의 개념으로 보자면
한번밖에 사용할 수 없지만, 함수를 따로 호출하지 않고
그 자리에서 실행을 할 수 있다는 점에서 획기적이라는 생각이 들었지만
알아두면 좋겠지만 실생활에서 많이 사용할 것 같지는 않은 것 같다.
하지만 상당히 놀라웠고 JavaScript에 대한 호기심이 더 들 수 밖에 없었다.

profile
9년차 소프트웨어 개발자 (2024년 재 개편 예정입니다)

0개의 댓글

관련 채용 정보