자바스크립트의 함수 선언 방법은 무엇인가요?
_____A1: 자바스크립트에서 함수를 선언하는 가장 기본적인 방법은 함수 선언문(function declaration)을 사용하는 것입니다.
```javascript
function 함수이름(매개변수1, 매개변수2) {
// 함수 본문
}
```
Q2: 함수 표현식(function expression)이란 무엇인가요?
A2: 함수 표현식은 변수에 익명 함수 또는 이름 있는 함수를 할당하는 방식입니다.
```javascript
const 함수이름 = function(매개변수1, 매개변수2) {
// 함수 본문
};
```
Q3: 화살표 함수(arrow function)는 어떻게 선언하나요?
A3: ES6부터 도입된 화살표 함수는 간결한 함수 작성 방법을 제공합니다.
```javascript
const 함수이름 = (매개변수1, 매개변수2) => {
// 함수 본문
};
```
매개변수가 하나일 경우 괄호 생략이 가능하며, 함수 몸체가 단일 표현식일 때는 중괄호와 return도 생략할 수 있습니다.
예:
```javascript
const 제곱 = x => x * x;
```
Q4: 함수 선언문과 함수 표현식의 차이점은 무엇인가요?
A4: 함수 선언문은 호이스팅(hoisting)에 의해 선언된 위치보다 위에서도 호출이 가능하지만, 함수 표현식은 변수에 할당되는 시점부터 사용할 수 있습니다.
Q5: 생성자 함수(constructor function)는 어떻게 선언하나요?
A5: 생성자 함수는 일반 함수와 비슷하게 선언하되, 보통 이름의 첫 글자를 대문자로 써서 구분합니다. `new` 키워드와 함께 호출하여 객체를 생성합니다.
function Person(name, age) {
this.name = name;
this.age = age;
}
const person1 = new Person("홍길동", 30);
```
Q6: 즉시 실행 함수(IIFE)는 무엇이며 어떻게 선언하나요?
A6: 즉시 실행 함수는 선언과 동시에 즉시 호출되는 함수입니다. 보통 함수 선언문을 괄호로 감싸고 바로 호출합니다.
```javascript
(function() {
console.log("즉시 실행 함수");
})();
```
Q7: 함수 매개변수 기본값은 어떻게 설정하나요?
A7: ES6부터 함수 매개변수에 기본값을 지정할 수 있습니다.
```javascript
function greet(name = "손님") {
console.log(`안녕하세요, ${name}님!`);
}
greet(); // 안녕하세요, 손님님!
```
Q8: 함수 선언 방법별 사용 용도나 특징을 간단히 정리해 주세요.
A8:
- 함수 선언문: 전통적이고 가장 일반적인 선언 방법, 호이스팅 가능
- 함수 표현식: 변수에 할당하여 동적으로 함수 작성 가능, 클로저 활용 시 유용
- 화살표 함수: this 바인딩이 부모 환경을 따라감, 간결한 문법, 이벤트 핸들러나 콜백에서 자주 사용
- 생성자 함수: 객체 생성 목적
- 즉시 실행 함수: 초기화 코드 실행 시 사용
이상으로 자바스크립트에서 함수 선언 방법에 대한 주요 내용을 FAQ 형식으로 정리했습니다.
함수는 여러 가지 방법으로 선언할 수 있으며, 각 방법은 특정한 상황에 따라 장단점이 있습니다.
여기서는 자바스크립트의 다양한 함수 선언 방법에 대해 자세히 설명하겠습니다.
1. 함수 선언문 (Function Declaration) 가장 전통적인 방법으로, `function` 키워드를 사용하여 함수를 선언합니다.
이 방법은 함수가 호이스팅(hoisting)되므로, 함수가 선언되기 전에 호출할 수 있습니다.
```javascript function add(a, b) { return a + b; } console.log(add(2,
3)); // 5 ```
2. 함수 표현식 (Function Expression) 함수 표현식은 함수를 변수에 할당하는 방식입니다.
이 방법으로 선언된 함수는 호이스팅되지 않기 때문에, 함수가 정의된 이후에만 호출할 수 있습니다.
```javascript const multiply = function(a, b) { return a * b; }; console.log(multiply(4,
5)); // 20 ```
3. 화살표 함수 (Arrow Function) ES6에서 도입된 화살표 함수는 더 간결한 문법으로 함수를 정의할 수 있게 해줍니다.
화살표 함수는 `function` 키워드 대신 `=>`를 사용하며, `this` 바인딩이 다르게 동작합니다.
```javascript const divide = (a, b) => { return a / b; }; console.log(divide(10,
2)); // 5 ``` 단일 표현식의 경우 중괄호와 `return` 키워드를 생략할 수 있습니다.
```javascript const square = x => x * x; console.log(square(
5)); // 25 ```
4. 즉시 실행 함수 (Immediately Invoked Function Expression, IIFE) 즉시 실행 함수는 정의되자마자 즉시 실행되는 함수입니다.
주로 변수를 스코프에 제한하고 싶을 때 사용됩니다.
```javascript (function() { console.log("This function runs immediately!"); })(); ```
5. 생성자 함수 (Constructor Function) 생성자 함수는 객체를 생성하기 위해 사용됩니다.
일반적으로 첫 글자를 대문자로 시작하며, `new` 키워드를 사용하여 호출합니다.
```javascript function Person(name, age) { this.name = name; this.age = age; } const john = new Person('John', 30); console.log(john.name); // John ```
6. 클래스 (Class) ES6에서 도입된 클래스 문법은 객체 지향 프로그래밍을 지원합니다.
클래스 내부에 메서드를 정의할 수 있으며, 생성자도 포함할 수 있습니다.
```javascript class Animal { constructor(name) { this.name = name; } speak() { console.log(`${this.name} makes a noise.`); } } const dog = new Animal('Dog'); dog.speak(); // Dog makes a noise. ```
7. 메서드 (Method) 객체의 속성으로 정의된 함수는 메서드라고 합니다.
메서드는 해당 객체의 속성에 접근할 수 있습니다.
```javascript const car = { brand: 'Toyota', drive() { console.log(`${this.brand} is driving.`); } }; car.drive(); // Toyota is driving. ``` 결론 자바스크립트에서 함수는 다양한 방법으로 선언할 수 있으며, 각 방법은 특정한 용도와 상황에 맞게 사용됩니다.
함수 선언문, 함수 표현식, 화살표 함수, 즉시 실행 함수, 생성자 함수, 클래스 및 메서드 등 다양한 방식으로 함수를 정의할 수 있습니다.
이러한 다양한 선언 방법을 이해하고 적절히 활용하는 것은 자바스크립트 프로그래밍의 중요한 부분입니다.
작성자:
박서우 [비회원]
| 작성일자: 1년 전
2024-09-08 14:47:22
조회수: 217 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 217 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.