자바스크립트에서 함수는 중요한 역할을 한다. 이는 코드의 재사용성을 높이고, 코드를 모듈화하는 데 도움이 된다. 여기서는 자바스크립트에서 사용하는 다양한 함수 유형과 특징에 대해 알아보겠다.
함수 선언은 가장 기본적인 함수 정의 방법이다. 함수 이름, 괄호, 그리고 중괄호를 사용하여 함수를 선언한다. 그 내부에는 수행할 연산이 포함된다. 함수 선언은 코드에서 여러 번 재사용 될 수 있다. 이것은 자바스크립트의 기본이다.
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" 출력
함수는 매개변수를 통해 값을 받아들인다. 매개변수는 함수의 입력으로, 함수 내부에서만 사용되는 변수이다. 함수 정의시 괄호 안에 선언되며, 매개변수는 함수가 호출될 때 인자로 전달받은 값을 가진다.
function 함수이름(매개변수1, 매개변수2){
# 함수 본문
}
인자는 함수를 호출할 때 함수에 전달하는 값이다. 이 인자들은 함수 내부의 매개변수에 할당된다.
function 함수이름(매개변수1, 매개변수2){
}
함수이름(인자1,인자2)//a,b는 인자이다.
위의 예시에서
인자1
,인자2
는 함수를 호출할 때 전달하는 값들이다. 이들은 함수 내부의매개변수1
,매개변수2
에 각각 할당된다.
다음은 매개변수와 인자를 사용하는 간단한 함수 예제이다.
function greet(name): { //name은 매개변수
console.log("안녕, " + name + "!")}
greet("철수") // "철수"는 인자
//'안녕, 철수!'
이 예제에서 name은 매개변수로, greet 함수가 어떤 값을 받아들일 것인지를 정의한다. 그리고 "철수"는 인자로, 실제로 greet 함수에 전달되는 값이다.
함수 내에서 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 출력
ES6에서 도입된 rest parameter는 함수에 임의의 개수의 인자를 배열 형태로 전달할 수 있게 한다. arguments
와 비슷하지만, 배열의 모든 메서드를 사용할 수 있어 더 편리한다.
function sum(...numbers) {
return numbers.reduce((acc, num) => acc + num, 0);
}
console.log(sum(1, 2, 3, 4, 5)); // 15 출력
이렇게 자바스크립트의 함수는 다양한 방식으로 활용할 수 있으며, 이러한 유연성이 자바스크립트를 강력하고 독특하게 만든다.