본문 바로가기
[Java Script 개념]

Function

by ho-bolt 2021. 8. 17.

 

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();

 

이렇게 {} 블록 처리할 것을 => 로 간단히 표현할 수 있다.  

====================================================================

 

728x90

'[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

댓글