🔑 Point!
🎉 함수선언 (function declation)
🎉 함수표현 (function Expression)
🎉 arrow function
함수란?
함수 선언의 방법에 대해 이해하고, 함수 선언과 함수 표현식의 차이점을 이해해 봅시다.
function name(param1, param2...) {
body~~~~
return;
}
name: 함수의 이름은 verb형태로 작성합니다.
ex) doSomethig, printMessage
parameter (매개변수)
1) premitive parameters 일 때는 value가 그대로 전달됩니다.
2) object parameter은 refernse가 전달됩니다.
Default parameter
매개변수의 기본값을 설정하는 방법은 간단합니다. 매개변수 옆에 = '기본 값'을 입력
function doSomething(who, what = 'dog') {
console.log(`${who} likes ${what}.`);
}
doSomething('hyojin'); //--> what에 대한 param2가 없기때문에
// 'hyojin likes dog.'이 출력
First-class Function ?
함수를 전달해서 나중에 호출하는 것이다.
- anonymous function / named function
1. anonymous function(이름 없는 function)function ()
- named function (이름 있는 function)
named function은 디버깅할 때 함수 이름이 나오게 하거나, 함수 안에서 자기 자신을 또다른 함수로 호출할 때 쓰인다.function name(param)
function expression을 간결하게 만들어 준다.
항상 이름이 없는 anonymous function이다!
const simplePrint = function () {
console.log('simplePrint');
};
// arrow function으로
const simplePrint = () => console.log('simplePrint');
함수 표현은 할당 된 다음부터 호출이 가능한 반면에! (즉, 선언 전에 호출하면 Error)
함수 선언은 hoisting이 가능하다. (선언하기 전에 호출이 가능)
(Q. 함수 선언을 hoisting해서 사용하는 경우는 언제? 왜?)