함수

자바스크립트에서 함수(function)는 특정 작업을 수행하는 코드 블록이다.

함수는 재사용 가능한 코드를 작성할 수 있게 해준다.

함수는 입력값을 받아 처리하고 결과를 반환한다.


1. 함수 선언

  • 함수는 function 키워드로 선언합니다.
function add(x, y) {
    return x + y;
}
console.log(add(5, 10)); // 15

 

함수 정의 후 실행


2. 함수 표현식

  • 함수 표현식은 함수를 변수에 할당하는 방식
const add = function(x, y) {
    return x + y;
}
console.log(add(5, 10)); // 15

함수 표현식으로 정의 후 실행


3. 화살표 함수

  • ES6에서 도입된 간결한 함수 표현.
function add(a, b) {
	return a + b;
}
console.log(add(10, 20));


const add2 = function (a, b) {
	return a + b;
}
console.log(add2(10, 20));


const add3 = (a, b) => {
	return a + b;
}
console.log(add3(10, 20));


const add4 = (a, b) => a + b;
console.log(add4(10, 20));

화살표 함수로 정의 후 실행


4. 기본 매개변수 값

function greet(name = "Guest") {
  return `Hello, ${name}!`;
}

console.log(greet("Alice")); // "Hello, Alice!"
console.log(greet()); // "Hello, Guest!"

기본 매개변수가 존재하는 함수 정의 후 실행


5. 가변 인자 함수

function sum(...numbers) {
  let total = 0;
  for(let i of numbers) {
    total = total + i;
  }
  return total;
}

console.log(sum(1, 2, 3, 4)); // 10

가변인자가 존재하는 함수 선언 후 실행


6. 스코프(Scope)

  • 함수 스코프 : var로 선언한 변수는 함수 내에서만 유효합니다.
function functionScopeExample() {
  if (true) {
    var x = 10;  // 'var'는 함수 스코프
  }
  console.log(x);  // 10: x는 functionScopeExample 함수 내에서 유효하므로 출력됨
}

functionScopeExample();

함수 스코프 존재하는 함수 선언 후 실행

  • 블록 스코프 : let, const로 선언한 변수는 블록 내에서만 유효합니다.
function blockScopeExample() {
  if (true) {
    let y = 20;  // 'let'은 블록 스코프
    const z = 30;  // 'const'는 블록 스코프
  }
  console.log(y);  // ReferenceError: y is not defined
  console.log(z);  // ReferenceError: z is not defined
}

blockScopeExample();

블록 외부에서 스코프에 접근했기에 에러가 나옴

  • 글로벌 스코프 : 함수 외부에서 선언된 변수는 어디에서나 접근 가능합니다.
let globalVar = 'global';
function testScope() {
    let localVar = 'local';
    console.log(globalVar); // global
    console.log(localVar); // local
}
testScope();
// console.log(localVar); // 오류 발생

글로벌 스코프는 블록 내부에서도 접근이 가능


혹시라도 틀린 내용이 있다면 댓글로 알려주시면 감사하겠습니다!!

'JavaScript' 카테고리의 다른 글

[JavaScript] DOM  (1) 2025.06.28
[JavaScript] 객체와 배열  (2) 2025.06.25
[JavaScript] 조건문, 반복문  (0) 2025.06.25
[JavaScript] 연산자  (0) 2025.06.25
[JavaScript] 변수 선언  (1) 2025.06.25

+ Recent posts