1. 함수
자바스크립트에서 함수는 특정 작업을 수행하는 코드 블록으로, 필요할 때 이름을 호출해서 반복적으로 사용할 수 있는 구조이다. 함수를 사용하면 같은 코드를 여러 번 작성하지 않고 재사용할 수 있어 코드가 더 효율적이고 깔끔해진다. 함수는 function 키워드를 사용하여 정의하며, 괄호 안에는 함수에 전달할 매개변수(입력값)를 넣을 수 있고, 내부에서 return 키워드를 사용해 결과값(출력값)을 반환할 수 있다. 함수는 자바스크립트에서 반복되는 작업을 모듈화하고 재사용하기 위한 핵심 도구이다. 자바스크립트에서는 함수를 만드는 두 가지 방법이 있다. 기본 함수 선언식과 함수 표현식인데 비슷해 보이지만 중요한 차이점이 있다.
1. 기본 함수 선언식 (Function Declaration)
function sayHello() {
console.log("안녕하세요!");
}
- function 키워드로 시작하고, 이름을 붙여 정의한다.
- 독립적으로 선언된 함수이다.
- 전역적으로 자주 호출할 함수로 작성
- 호이스팅 덕분에 선언 전에 호출해도 정상작동
2. 함수 표현식 (Function Expression)
const sayHello = function() {
console.log("안녕하세요!");
};
- 함수 자체는 익명 함수(이름 없는 함수)이고,
- 이것을 const, let, var 같은 변수에 저장한 형태이다.
- 필요한 순간에만 쓰는 함수
호이스팅
자바스크립트가 코드를 실행하기 전에, 변수와 함수 선언을 "끌어올리는" 동작을 말한다. 즉, 변수나 함수가 코드의 아래쪽에 있어도, 위쪽에 있는 것처럼 동작하는 현상이다.
2. 자바스크립트 실행 과정
자바스크립트는 코드를 실행할 때 2단계 과정으로 처리한다.
1. 소스 코드 준비 단계 (메모리 생성 단계 / 변수 선언 단계)
- 코드를 실행하기 전에 자바스크립트 엔진은 전체 코드를 한 번 훑는다.
- 이 과정에서 변수(식별자)를 메모리에 등록(선언)하고 함수 선언식은 전체 함수 내용까지 메모리에 저장한다. 단, 값의 할당은 아직 하지 않음(변수는 undefined로 초기화됨)
✅ 이게 바로 호이스팅의 정체입니다!!
2. 실행 단계 (코드 한 줄씩 실행)
- 선언이 끝난 후에야 코드가 위에서부터 한 줄씩 실행된다.
- 이때 변수에 값이 할당되고, 함수가 호출된다.
3. 다양한 함수의 형태
1. 매개변수가 없는 함수
매개변수가 없고, 정해진 코드만 실행한다.
function showMessage() {
console.log("환영합니다!");
}
showMessage();
2. 매개변수가 있는 함수
매개변수를 받아서 동적으로 동작한다.
function greet(name) {
console.log("안녕하세요, " + name + "님!");
}
greet("김사과");
3. 리턴이 있는 함수
결과를 return으로 반환해서 다른 곳에서 사용할 수 있다.
function add(a, b) {
return a + b;
}
let result = add(3, 5);
console.log(result);
4. 기본값이 있는 함수 (Default Parameters)
매개변수를 안 넣으면 기본값이 사용된다.
function greet(name = "게스트") {
console.log("안녕하세요, " + name + "님!");
}
greet();
greet("김사과");
5. 가변 매개변수 함수 (Rest Parameter)
매개변수가 몇 개인지 몰라도 받을 수 있다. (... 사용)
function sum(...numbers) {
let total = 0;
for (let num of numbers) {
total += num;
}
return total;
}
console.log(sum(1, 2));
console.log(sum(1, 2, 3, 4));
6. 즉시 실행 함수 (IIFE)
정의하자마자 바로 실행되는 함수이다. 한 번만 실행되는 초기화 코드 등에 사용된다.
(function() {
console.log("이건 즉시 실행 함수입니다!");
})();
7. 함수 안에 함수 (중첩 함수)
함수 내부에서 또 다른 함수를 정의할 수 있다.
function outer() {
function inner() {
console.log("안쪽 함수 실행!");
}
inner();
}
outer();
8. 함수에서 함수 반환 (고차 함수)
함수가 다른 함수를 리턴할 수 있다.
function createGreeting(message) {
return function(name) {
console.log(message + ", " + name + "님!");
};
}
const hello = createGreeting("안녕하세요");
hello("김사과");'프론트엔드 > Javascript' 카테고리의 다른 글
| 클래스 (0) | 2025.04.16 |
|---|---|
| 객체 지향 프로그래밍 (0) | 2025.04.16 |
| 배열과 반복문 (0) | 2025.04.16 |
| 배열 (0) | 2025.04.16 |
| 제어문 - 기본 반복문 (0) | 2025.04.16 |