JAVASCRIPT
function
KimNani
2022. 1. 24. 23:11
function 의 정의와 특징
1. 프로그램을 구성하는 기본적인 빌딩 블럭이다.
2. 서브프로그램이라고 볼 수 있다.
3. 재사용이 가능하다.
function의 선언에 관하여
1. function name(param1, param2){ body ... return;}
2. one function === one thing
: 하나의 함수로는 하나의 일만 하는것이 좋다.
: 예를들어 함수명이 createCardandPoint 라면, createCard, createPoint 처럼 구분지어 나누는 것이 좋다.
: 함수는 동작하는것이기 때문에 네이밍은 동사, 커맨드 형태로 지정하는것이 좋다.
3. function은 object 이다.
: 변수할당, 파라미터로 전달, 함수 리턴이 가능하다.
4. local scope
{} 블럭 안에서 변수를 선언하게 되면 지역변수가 됨.
지역변수는 같은 블럭 안에서만 접근이 가능함.
{}블럭 안에 선언된게 아니라면 전역변수가 됨.
전역변수는 {}블럭 안에서도 접근할 수 있음.
같은 맥락으로 중첩된 function 함수에서 자식 함수가 부모 함수에 접근이 가능하지만,
부모함수는 자식 함수에 접근할 수 없음.
closer
5. return
return 값이 지정되어있지 않은 함수는, return undefined 이 생략되어있는 것임.
6. function expression
//함수를 선언함과 동시에 print에 할당함.
//함수 이름이 없고 함수라는 키워드를 이용해서 파라미터와 블럭을 이용한것을 anonymous function
const print = function(){
console.log('print');
}
//함수의 이름이 있는 것은 named function
const print = function print(){
console.log('print');
};
print(); //print가 출력됨
const printAgain = print;
printAgain(); //print가 출력됨
호이스팅 적용이 안됨.
7. callback
//callback function
function randomQuiz(answer,printYes, printNo){
if(answer==='love you'){
printYes();
}else{
printNo();
}
}
const printYes = function(){
console.log('yes!');
}
const printNo = function print(){
console.log('no!');
}
randomQuiz('wrong', printYes, printNo); //no!를 리턴
randomQuiz('love you', printYes, printNo); //yes!를 리턴
8. arrow function
const simplePrint = function(){
console.log('so simple!');
}
//arrow function 으로 변경하면
//항상 이름이 없음, function 와 {}을 안써도 됨.
const simplePrint = () => console.log('so simple!');
const add = (a,b) => a+b;
const simpleMultiply = (a,b) =>{ //블럭이 필요할때는 리턴값을 불러줘야함.
return a*b;
}
9. IIFE
//함수를 선언함과 동시에 실행시키고자 할때 ()로 감싼다.
(function hello(){
console.log('IIFE');
})();