자바스크립트에서 함수를 정의하는 방법은 무엇인가요?
_____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) => {
// 실행할 코드
};
```
Q4: 함수 선언과 함수 표현식의 차이점은 무엇인가요?
A4: 함수 선언문은 호이스팅 되어 함수가 선언된 위치와 상관없이 호출이 가능하지만, 함수 표현식은 선언 이후에만 호출할 수 있습니다.
Q5: 매개변수가 없는 함수는 어떻게 정의하나요?
A5: 매개변수 리스트를 비워서 정의하면 됩니다.
```javascript
function 인사() {
console.log("안녕하세요");
}
```
Q6: 즉시 실행 함수(IIFE)는 어떻게 정의하나요?
A6: 정의와 동시에 실행할 함수로, 다음과 같이 작성합니다.
```javascript
(function() {
console.log("즉시 실행 함수");
})();
```
Q7: 기본 매개변수(default parameters)는 어떻게 설정하나요?
A7: 함수 선언 시 매개변수에 기본값을 할당할 수 있습니다.
```javascript
function 함수이름(매개변수 = 기본값) {
// 실행할 코드
}
```
Q8: 함수 내부에서 arguments 객체를 사용하는 방법은?
A8: 함수에 전달된 모든 인수를 배열처럼 접근할 수 있습니다.
```javascript
function 예시() {
console.log(arguments[0]); // 첫 번째 인자
}
```
Q9: 함수 선언문과 함수 표현식이 실행 시점에 미치는 영향은?
A9: 함수 선언문은 코드가 실행되기 전에 메모리에 올라가서 어디서나 호출 가능하지만, 함수 표현식은 코드가 실행될 때 할당되어 선언 이전에는 호출할 수 없습니다.
Q10: 익명 함수와 이름 있는 함수의 차이점은 무엇인가요?
A10: 익명 함수는 이름이 없는 함수이고, 주로 함수 표현식이나 콜백으로 사용됩니다. 이름 있는 함수는 이름이 있어 디버깅, 재귀 호출에 유리합니다.
```javascript
const 익명 = function() { };
const 이름있는 = function 함수명() { };
```
아래에서는 자바스크립트에서 함수를 정의하는 다양한 방법에 대해 자세히 설명하겠습니다.
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 ``` 이름이 있는 함수 표현식 ```javascript const divide = function division(a, b) { return a / b; }; console.log(divide(10,
2)); // 5 ```
3. 화살표 함수 (Arrow Function) ES6(ECMAScript 201
5)에서 도입된 화살표 함수는 더 간결한 문법을 제공합니다.
특히, `this` 바인딩이 기존의 함수와 다르게 동작하는 점이 특징입니다.
```javascript const subtract = (a, b) => { return a - b; }; // 한 줄로 작성할 경우 중괄호와 return을 생략할 수 있습니다.
const square = x => x * x; console.log(subtract(10,
4)); // 6 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 person1 = new Person("Alice", 30); console.log(person1.name); // Alice ```
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. ``` 결론 자바스크립트에서 함수를 정의하는 방법은 다양하며, 각 방법은 특정한 요구 사항이나 상황에 맞게 선택할 수 있습니다.
함수 선언문, 함수 표현식, 화살표 함수, 즉시 실행 함수, 생성자 함수, 클래스 등 다양한 방식을 통해 자바스크립트의 강력한 기능을 활용할 수 있습니다.
이러한 다양한 방법을 이해하고 적절히 사용하는 것은 자바스크립트 프로그래밍에서 매우 중요합니다.
작성자:
정지호 [비회원]
| 작성일자: 1년 전
2024-09-10 08:36:54
조회수: 143 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 143 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.