fuction name(param1, param2) { body... return; }
hoisting 되기 때문에 선언 전에 사용해도 작동한다.
하나의 함수는 하나의 기능만.
이름은 동사형으로 지어야 한다.
funtion log(message: string): number {
console.log(message);
return 0;
}
primitive parameters : passed by value
object parameters: passed by reference
밖에서는 안이 보이지 않고, 안에서만 밖을 볼 수 있다.
조건이 맞지 않을 때 빨리 끝내버리고, 긴 로직은 그 뒤에 작성하는 것이 더 좋다.
함수는 다른 변수들처럼
1. 변수의 값으로 할당된다.
2. 다른 함수의 argument로 전달된다.
3. 다른 함수의 return값으로도 return된다.
할당된 다음부터 사용가능하다.
const print = function(){ // anonymous function
console.log('print');
}
print();
const printAgain = print;
printAgain();
함수를 불러다가 씀.
function randomQuiz(answer, printYes, printNo) {
if(answer === 'love you') {
printYes();
} else {
printNo();
}
}
// annonymous function
const printYes = function () {
console.log('yes!');
};
// named function (디버깅, recursions)
const printNo = function print() {
console.log('no!');
}
const simplePrint = function () {
console.log('simplePrint!');
};
const simplePrint = () => console.log('simplePrint!');
Immediately Invoked Function Expression
함수 선언과 동시에 호출
(function hello(){})()