Function
- sub program
- 프로그램을 구성하는 굉장히 기본적인 building block
- 여러번 재사용 가능
- 한가지의 태스크, 값 계산에 사용됨
- 자바스크립트에서 함수는 object
1) Function declare(함수 선언)
- function name(param1, param2){ body... return;}
- 하나의 함수는 하나의 기능만
- 함수명 : dosomething, command, verb
2) Parameter(매개변수)
- premitive parameter : 값 전달
- object parameter : 레퍼런스값 전달
3) Default parameters
- ES6에서 추가됨
- 사용자가 parameter의 값을 지정하지 않고 전달할 시 디폴트값 설정 가능
ex. function 함수명(parameter = 'unknown'){}
4) Rest parameters
- ES6에서 추가됨
- 배열 형태로 전달
ex. function 함수명(... param){}
+ 반복문
- for (const 변수명 of 매개변수명){
실행문
}
- 매개변수명.forEach((변수명) => 실행문(변수명));
5) Local scope
- 함수 안에서만 사용 가능한 변수
- 함수 내에서 함수를 선언한 경우에도 해당됨
6) Return
- return 타입이 없는 경우에는 return undefined가 선언되어있는 것과 같음
7) Early Return
- 조건이 맞지 않는 경우 빨리 리턴해 함수 종료
- 이후에 필요한 로직들을 작성
ex. if(조건문) {
return; }
8) Anonymous function
- 함수의 값을 변수에 바로 할당하는 경우에 주로 사용
- 함수인 부분만 선언하고 함수명이 존재하지 않음
9) Named function
- 함수의 이름이 선언된 함수
- 디버깅할 때 함수명이 나오게 하기 위함
- 함수 안에서 또 함수 자신 스스로를 부르는 경우
Function Expression
1) function declaration
- hoisted가 가능
- 선언되기 전에 호출되어도 실행 가능
2) function expression
- 선언, 할당된 다음부터 호출 가능
Callback function
- 함수를 전달해 필요한 경우 호출하는 경우
Arrow function
- 항상 이름이 없는 anonymous function
- function 선언과 코드블록 선언 없이 => 작성
IIFE
- Immediately Invoked Function Expression
- 선언함과 동시에 호출하려는 경우 사용
- 함수의 선언을 소괄호로 묶은 후 함수 실행하는 식으로 표현();
+ 배울수록 코틀린과 비슷하다는 생각이 든다... 배우면 배울수록 어디선가 본 듯한 이 문법들,,,
++ 오늘의 숙제
function calculate(command, a, b)
command(add, substract, divide, multiply, remainder)
당장 생각나는 건 이런 코드인데 오늘 배운 내용을 활용해서 더욱 좋은 코드를 만들 수 있지 않을까,,,?
아쉬움이 남는다,,,
'개발 공부 > JavaScript' 카테고리의 다른 글
7. 오브젝트 (0) | 2022.01.20 |
---|---|
6. 클래스와 오브젝트의 차이점 (0) | 2022.01.19 |
4. operator, if, for, loop (0) | 2022.01.16 |
3. 데이터타입(let? var?) hoisting (0) | 2022.01.15 |
2. async와 defer의 차이점은? (0) | 2022.01.14 |