Delete conten/함수 directory

This commit is contained in:
jjinny
2021-07-09 02:07:31 +09:00
committed by GitHub
parent 9915ddf82d
commit dce846f8d5

View File

@@ -1,93 +0,0 @@
# 함수
Javascript에서 함수는 유연성이 높다.
## 목차
- [익명 함수](#익명-함수)
- [즉시실행함수](#즉시실행함수)
- [함수호출방법](#함수-호출-방법)
### 익명 함수
```javascript
function() {
return '익명 함수입니다';
}
```
이름이 없는 함수를 익명함수라 한다.
이름이 없기에 기존의 함수 호출 방법으로는 익명함수를 호출 할 수 없다.
```javascript
getId();
```
와 같이 이름으로 호출 할 수 없다.
---
**Javascript에서 함수는 `값`으로 인식된다.**
즉, `a = 10` 처럼 a라는 변수에 10이라는 값을 담듯이
변수 안에 함수를 담을 수 있다는 것이다.
이를 통해 익명함수를 호출할 수 있다.
```javascript
const testFunc = function() {
return '익명함수를 호출합니다';
}
```
testFunc라는 변수안에 `익명함수를 호출합니다` 라는 문자열을 반환하는 함수가 담긴다.
```javascript
testFunc();
```
이와 같이 익명함수를 호출 할 수 있다.
---
### 즉시실행함수
또 한가지 방법으로 **즉시실행함수** 가 있다.
```javascript
(function(a) {
return a * 2;
})(2)
// 4
```
코드의 형태를 보면 함수의 선언문을 괄호로 감싼 뒤 바로 호출해주는 모습이다.
함수를 선언함과 동시에 실행한다고 보면 된다.
익명함수만 즉시실행함수로 정의가 가능한 것은 아니다.
즉시실행함수로 비익명(기명)함수도 실행가능하다.
```javascript
(function multiply(a) {
return a * 2;
})(2)
```
---
### 함수 호출 방법
1. `함수의이름()`
일반적인 방법이다.
2. `call` 함수
3. `apply` 함수
`call`함수와 `apply`함수는 사용법은 거의 같으나 함수 호출에 필요한 인자를 넘겨주는 방식에 차이가 있다.
```javascript
function concat(a, b) {
return `${a} ${b}`;
}
concat.call(null, 'Hello', 'world!');
concat.apply(null, ['Hello', 'world!'])
```
5번, 6번라인의 코드 모두 `Hello world!` 라는 같은 결과를 반환한다.
다만, `call`은 함수 호출에 필요한 인자를 쭉- 나열하는 방식이지만 `apply`는 인자를 배열 안의 요소로 담아 넘겨준다.
필요와 용도에 따라 사용하면 될 것 같다.