[자바스크립트] 함수

River Moon·2023년 7월 10일
0
post-thumbnail

자바스크립트에서 함수는 중요한 역할을 한다. 이는 코드의 재사용성을 높이고, 코드를 모듈화하는 데 도움이 된다. 여기서는 자바스크립트에서 사용하는 다양한 함수 유형과 특징에 대해 알아보겠다.

함수 선언

함수 선언은 가장 기본적인 함수 정의 방법이다. 함수 이름, 괄호, 그리고 중괄호를 사용하여 함수를 선언한다. 그 내부에는 수행할 연산이 포함된다. 함수 선언은 코드에서 여러 번 재사용 될 수 있다. 이것은 자바스크립트의 기본이다.

function greet(name) {
  console.log('Hello, ' + name);
}
greet('World');  // "Hello, World" 출력

함수 표현식

함수 표현식은 함수를 변수에 할당하는 방식이다. 이 방식은 함수를 값처럼 다루어, 더욱 유연한 코드 작성을 가능하게 한다. 함수 표현식은 자바스크립트에서 많이 사용되는 패턴이다.

let greet = function(name) {
  console.log('Hello, ' + name);
};
greet('World');  // "Hello, World" 출력

화살표 함수

화살표 함수는 ES6에서 도입된 새로운 함수 표현 방식이다. 간결한 문법과 this 바인딩의 특성이 다르다는 점이 특징이다.

let greet = (name) => {
  console.log('Hello, ' + name);
};
greet('World');  // "Hello, World" 출력

매개변수(Parameter) 와 인자(Argument)

매개변수(Parameter)

함수는 매개변수를 통해 값을 받아들인다. 매개변수는 함수의 입력으로, 함수 내부에서만 사용되는 변수이다. 함수 정의시 괄호 안에 선언되며, 매개변수는 함수가 호출될 때 인자로 전달받은 값을 가진다.

function 함수이름(매개변수1, 매개변수2){
  # 함수 본문
}

인자(Argument)

인자는 함수를 호출할 때 함수에 전달하는 값이다. 이 인자들은 함수 내부의 매개변수에 할당된다.

function 함수이름(매개변수1, 매개변수2){
}

함수이름(인자1,인자2)//a,b는 인자이다.

위의 예시에서 인자1, 인자2는 함수를 호출할 때 전달하는 값들이다. 이들은 함수 내부의 매개변수1, 매개변수2에 각각 할당된다.

매개변수와 인자의 관계

다음은 매개변수와 인자를 사용하는 간단한 함수 예제이다.

function greet(name): {  //name은 매개변수
    console.log("안녕, " + name + "!")}

greet("철수")  // "철수"는 인자
//'안녕, 철수!'

이 예제에서 name은 매개변수로, greet 함수가 어떤 값을 받아들일 것인지를 정의한다. 그리고 "철수"는 인자로, 실제로 greet 함수에 전달되는 값이다.

arguments

함수 내에서 arguments 객체를 사용하면, 함수에 전달된 모든 인자에 접근할 수 있습니다. 이는 매개변수의 수가 고정되지 않은 함수를 만들 때 유용하다. 이것은 자바스크립트의 유연성이다.

function sum() {
  let result = 0;
  for(let i = 0; i < arguments.length; i++) {
    result += arguments[i];
  }
  return result;
}
console.log(sum(1, 2, 3, 4, 5));  // 15 출력

rest parameter

ES6에서 도입된 rest parameter는 함수에 임의의 개수의 인자를 배열 형태로 전달할 수 있게 한다. arguments와 비슷하지만, 배열의 모든 메서드를 사용할 수 있어 더 편리한다.

function sum(...numbers) {
  return numbers.reduce((acc, num) => acc + num, 0);
}
console.log(sum(1, 2, 3, 4, 5));  // 15 출력

마무리

이렇게 자바스크립트의 함수는 다양한 방식으로 활용할 수 있으며, 이러한 유연성이 자바스크립트를 강력하고 독특하게 만든다.

profile
FE 리버

0개의 댓글