[TIL / JavaScript] 함수

Changyun Go·2021년 7월 26일
0
post-thumbnail

[JavaScript] 함수

함수의 사용법


  • 함수(function)는 어떤 작업을 수행하기 위해 필요한 문(statement)들의 집합을 정의한 코드 블록이다.
  • 하나의 로직을 재실행 할 수 있도록 하는 것으로 코드의 재사용성을 높여준다.
function 함수명( [인자...[,인자]] ){
   코드
   return 반환값
}
  • 함수는 호출에 의해 실행되며 여러번 호출할 수 있다.
  • 함수를 호출하면 중괄호 사이에 있는 내용을 실행한다.
function numbering(){
    i = 0;
    while(i < 10){
        document.write(i);
        i += 1;
    }   
}
// ()가 있기 때문에 변수가 아닌 함수로 인식한다.
numbering();  // 0123456789

함수의 효용


  • 동일한 작업을 반복적으로 수행해야 한다면 미리 정의된 함수를 재사용하는 것이 효율적이다.
function numbering(){
    var i = 0;
    while(i < 10){
        document.write(i);
        i += 1;
    }   
}
 
numbering();
numbering();
numbering();
numbering();
numbering();
  • 함수 대신 for 문을 사용해서 반복해도 문제가 없으나 효용은 다르다. → for 문은 현재 구간에서 반복할 때 사용되지만, 함수는 위치에 상관없이 호출할 수 있기 때문에 필요한 맥락에서 쉽게 사용할 수 있다.
  • 긴 로직이 고유의 함수명을 가진 한 줄의 함수로 표현되기 때문에 가독성이 좋아진다.
  • 재사용성, 유지보수의 용이, 가독성은 매우 밀접한 관계에 있으며 프로그래밍 언어의 방향성에 가장 핵심적인 개념이다.

함수의 출력과 입력


반환값

  • 함수는 수행한 결과를 반환(return)할 수 있다.
  • 함수는 배열 등을 이용하여 한 번에 여러 개의 값을 return할 수 있다.
  • 함수는 반환을 생략할 수 있다. → undefined가 반환된다.
  • JavaScript는 return 키워드를 만나면 함수의 실행을 중단하고 함수를 호출한 코드로 되돌아간다. → return 키워드 이후에 다른 구문이 존재하면 실행되지 않는다.
function get_member1(){
    return 'egoing';
}
 
function get_member2(){
    return 'k8805';
}
 
alert(get_member1());  // egoing
alert(get_member2());  // k8805

return 뒤에 따라오는 값이 반환된다.

function get_member(){
    return 'egoing';
    return 'k8805';
    return 'sorialgi';
}
alert(get_member());  // egoing

return을 여러 번 입력해도 첫 번째 return에서 함수는 이미 종료되었기 때문에 두 번째, 세 번째 값은 출력되지 않는다.

매개변수와 인수

  • 함수에 전달한 인수(argument)는 매개변수(parameter)에 할당된다.
// 여기서 arg를 매개변수라고 한다.
function get_argument(arg){
    return arg;
}
 
// 여기서 get_argument(1)의 1을 인수라고 한다.
alert(get_argument(1));  // 1
alert(get_argument(2));  // 2

arg가 매개변수가 되고 인수 1에 의해 arg=1;로 정의된다.

  • 복수의 인수와 매개변수를 통해 여러 개의 입력 값을 받을 수 있다.
  • return 값은 하나만 가질 수 있다.
function get_arguments(arg1, arg2){
    return arg1 + arg2
}
 
alert(get_arguments(10, 20));
alert(get_arguments(20, 30));

P.S.

키워드가 아니라 내가 직접 함수를 정의해서 사용할 수 있다는 점이 신기했다😆 함수에 대한 구체적인 내용을 이해하려면 배열과 객체에 대한 내용을 먼저 공부해야 한다는 것을 알았고, 하나씩 깊이 있게 찾아보는 것보다 전반적인 내용을 훑어서 JavaScript의 큰 틀을 먼저 이해하는 것이 우선이라는 생각이 들었다😶

참고 문서


0개의 댓글

관련 채용 정보