
1. function 선언
function(param1, param2) { body... retrun ;}
이렇게 선언
함수는 반드시 하나의 작업만 할 수 있게 쓴다.
이름은 command, 혹은 동사로 쓴다.
또한 function은 object이기 때문에 변수에 할당할 수도 있고, 함수를 리턴할 수도 있다.
function log(message){
console.log(message);
}
log('Hello'); => Hello 출력됨
========================================================
2. parameters
premitive parameters : 값 전달
object parameters: ref 전달

hojin이 coder로 변경되서 출력됨
========================================================
3. default parameters

from 에 unknow을 default로 설정을 해주어 message만 호출할 시 undefined로 나오는 것을 방지할 수 있다.
========================================================
4. Rest parameters

...args는 3개의 값이 담겨 있는 배열이다.
첫 번째는 for반복문을 통해 args에 있는 걸 출력하고
두 번째는 arg of args 문법을 통해 args에 있는 걸 출력한다.
args에 있는 걸 하나씩 꺼내다는 것을 의미한다.
========================================================
5. Local scope
=> 밖에서는 내부를 보지 못하고, 안에서만 외부을 볼 수 있다.

let message는 { }안에 선언되었기 때문에 지역변수이기 때문에 { }안에서만 접근이 가능하다.
printAnother는 printMessage의 하위에 있기 때문에 접근이 가능하지만 childMessage는 printMessage가 접근할 수 없다.
==================================================================
6. return , Early return , early exit
=> 모든 함수는 return이 있지만 없는 경우는 return undefined가 생략되어 있다고 볼 수 있다.

101번 함수의 경우 만약 user의 point가 10점 이상이 되면 어떤 것을 업그레이드하는 로직을 if문 안에 적어야 한다.
하지만 이것은 가독성이 떨어질 수 있다. 따라서 107번줄에 있는 함수처럼 ealry return을 해주고, 처리할 로직을 밖에 적어야 가독성이 좋아진다.
=================================================================
7. Function expression

const print에다가 function()을 할당시킬 수 있음
이렇게 함수에 이름이 없는 것을 anonymous function이라고 한다.

이렇게 print함수를 printAgain에 재할당도 가능하다.
이렇게 할당된 print는 호이스팅이 되지 않지만 함수 선언은 호이스팅이 가능하다.
호이스팅이란 값을 끌어올리는 것을 말한다.
==================================================================
8. Callback function

callback은 위에 예시로 볼 때 answer가 love you면 인자값 printYes을 호출하교 아니면 printNo를 호출하는 함수이다.
이처럼 인자값을 call하고 back한다고 하여 callback함수라고 한다.

이 경우 첫 번째 randomQuiz는 no! 두 번째는 yes!가 출력되게 된다.
====================================================================
9. 화살 함수
const simplePrint=function(){
console.log('simplePrint');
};
const simplePrint= ()=> console.log('simplePrintg');
const add=(a,b)=> a+b;
const simpleMul=(a,b)=>{
return a*b; 이렇게 리턴을 해주면 된다.
};
simpleMul();
이렇게 {} 블록 처리할 것을 => 로 간단히 표현할 수 있다.
====================================================================
'[Java Script 개념]' 카테고리의 다른 글
object (0) | 2021.08.18 |
---|---|
class (0) | 2021.08.18 |
Operator (0) | 2021.08.17 |
데이터 타입 (0) | 2021.08.16 |
async와 defer 그리고 'use strict' (0) | 2021.08.16 |
댓글