Frontend/JavaScript

JavaScript Function

개발자의 첫 걸음 2025. 11. 14. 10:00

안녕하세요. 오늘은 자바스크립트 함수(Function)에 대해 알아볼게요.

 

 

 

자바스크립트 함수(Function)

 

함수는 특정 작업을 수행하거나 값을 계산하는 코드의 묶음이에요.

 

사용 목적은 코드의 재사용성과 프로그램의 모듈화 / 구조화, 그리고 이벤트 처리가 있어요.

function 함수명(매개변수) {
  // 수행할 코드
  return 반환값;
}

 

 

 

함수 선언 방식 

 

1. 함수 선언식(Function Declaration)

 

함수 선언식은 function 키워드 + 함수명을 얘기해요.

 

호이스팅이 적용돼서 선언 이전 호출이 가능해요.

greet(); // 가능

function greet() {
  console.log('안녕하세요! (함수 선언식)');
}

 

 

2. 함수 표현식(Function Expression)

 

함수 표현식은 변수에 익명 함수를 할당하고, 호이스팅 적용이 안돼요.

// greet2(); // ❌ 오류: 초기화 전 접근 불가

const greet2 = function() {
  console.log('안녕하세요! (함수 표현식)');
};

greet2(); // ✅

 

 

3. 화살표 함수(Arrow Function)

 

화살표 함수는 다른 선언 방식과 달리 function 대신 =>을 사용해요.

 

간결한 문법과 this 바인딩이 다르고, 항상 익명 함수를 사용해요.

const greet3 = () => {
  console.log('안녕하세요! (화살표 함수)');
};

greet3();

// 매개변수 1개 & 반환 1줄이라면 더 간단히
const greet4 = name => console.log(`안녕하세요, ${name}님!`);
greet4('홍길동');

 

 

 

 

매개변수(parameter)와 인자(argument)

 

매개변수는 함수 정의 시 입력값을 받기 위한 변수고,

 

인자는 함수 호출 시 실제로 전달하는 값이에요.

function add(a, b) {
  console.log(a + b);
}

add(3, 6); // 9
add(10);   // NaN (b가 undefined)

JS는 매개변수 개수와 인자 개수가 일치 않아도 되고, 전달되지 않는 인자는 undefined로 처리돼요.

 

 

 

반환값(return)

 

반환값은 함수 실행 결과를 반환으로, return 이후의 코드는 실행되지 않아요.

function subtract(a, b) {
  return a - b;
  console.log('이 코드는 실행되지 않음'); // 🚫
}

console.log(subtract(10, 7)); // 3

return이 없는 함수는 자동으로 undefined를 반환하게 돼요.

 

 

 

스코프(Scope, 변수의 유효 범위)

 

스코프는 지역 변수(Local)전역 변수(Global)로 구분하는데요.

 

지역 변수는 함수 내부에서만 접근 가능하고, 전역 변수는 파일 전체에서 접근이 가능해요.

let username = '홍길동'; // 전역 변수

function cgs() {
  let job = 'developer'; // 지역 변수
  console.log(`${username}'s job is ${job}`);
}

cgs(); // 정상 작동
// console.log(job); // ❌ ReferenceError

 

 

 

기본 매개변수(Default Parameters)

 

함수에 인자를 전달하지 않았을 때 사용할 기본값 지정이에요.

 

기본값이 있는 매개변수는 항상 뒤에 위치해야 해요.

function greet(name = '비회원 고객', age) {
  console.log(`안녕하세요, ${name}님! ${age}세 입니다.`);
}

greet('홍길동', 35); // ✅ 인자 전달
greet(29);           // name = 29, age = undefined (주의)


function greet2(age, name = '비회원 고객') {
  console.log(`안녕하세요, ${name}님! ${age}세 입니다.`);
}

greet2(34); // 안녕하세요, 비회원 고객님! 34세 입니다.

 

 

 

가변 매개변수(Rest Parameters)

 

가변 매개변수는 인자 개수가 유동적일 때, 모든 인자들을 배열로 받아요.

function spreadFunc(num1, num2, ...nums) {
  console.log(num1, num2);
  console.log(nums); // 나머지 인자들이 배열로 들어감
}

spreadFunc(1, 2, 3, 4, 5);
// 출력: 1 2 / [3, 4, 5]

// 예제 - 최소값 찾기
function findMin(...numbers) {
  let minNum = Math.min(...numbers);
  return minNum;
}

console.log(findMin(31, 23, 45, 66, 43, 32)); // 23

 

 

 

다음은 자바스크립트 함수의 요약표예요.

 

구분 키워드 특징 예시
함수 선언식 function 호이스팅 O function sum(a,b){}
함수 표현식 const = function() 호이스팅 X const sum = function(){}
화살표 함수 () => {} 간결, this 바인딩 다름 const sum = (a,b)=>a+b
기본 매개변수 param=value 인자 없을 때 기본값 function greet(name='Guest')
나머지 매개변수 ...rest 가변 인자 배열화 function fn(...nums)

 

 

 

여기까지 자바스크립트 함수에 대해 알아봤는데요.

 

함수를 잘 사용한다면 코드 재사용성과 유지보스성이 높아질 것 같아요.

'Frontend > JavaScript' 카테고리의 다른 글

JavaScript Asynchronous  (0) 2025.11.16
JavaScript High-Order Function & Callback Function  (3) 2025.11.15
JavaScript Array  (0) 2025.11.13
JavaScript control(2)  (0) 2025.11.12
JavaScript control(1)  (0) 2025.11.11