[TIL] 함수

ohoho·2023년 5월 24일

슬기로운스터디

목록 보기
5/54

함수

  • 반복되는 코드는 한번만 정의해놓고 필요할때마다 호출할 수 있어 반복 작업을 피할 수 있다.
  • 긴 프로그램을 기능별로 나눠 작성하면 모듈화로 전체 코드의 가독성이 좋아진다.
  • 기능별(함수별)로 수정이 가능하므로 유지보수에 좋다.

매개변수

  • 함수를 호출할때 괄호안에 적는것을 매개변수라 한다.
function name(매개변수){}

📌 true/false를 리턴하는 함수는 보통 isXxxx으로 만든다.

나머지 매개변수

  • 나머지 매개변수는 배열형태로 값이 리턴된다.
function name(매개변수,매개변수,...나머지매개변수){}
// 매개변수와, 나머지 매개변수를 사용한 예제
function min(first,...rests){
	let output
    let item
    
    //매개변수의 자료형에 따라 조건문
    if(Array.isArray(first)){
      	output = first[0];
      	item = first;
    }else if(typeof(first) === 'number'){
    	output = first;
      	item  = first;
    }
  
  //최솟값 구하기
  for(const key of item){
  	if(output > key){
    	output = key
    }
  }
  return output
}

📌 배열인지 확인할때는 isArray() 사용한다. (typeof 로는 불가능)

전개연산자

  • 배열을 함수의 매개변수로서 전개하고 싶을때 사용한다.
    (배열로 값을 안넣고 각각 넣었을때 하나의 배열로 값을 돌려준다.)
function name(...나머지매개변수){
console.log(...나머지매개변수)
}
const arr = [1,2,3]
name(arr)
//Array(4)
name(...arr)
//[1,2,3]

기본매개변수

  • 값을 넣지 않았을때도 기본값이 주어지는 매개변수
function money(name,wage=9100,hours=40){
	console.log(`#{name}님의 시급은${wage}원이며, 근무시간은${hours}시간입니다. 이달 급여는${wage * hours}원 입니다.`)
}

money('김')
//김님의 시급은 9100원이며, 근무시간은40시간입니다. 이달 급여는 364,000원 입니다.

money('이',10000)
//이님의 시급은 10000원이며, 근무시간은40시간입니다. 이달 급여는 400,000원 입니다.

콜백함수

  • 함수를 다른 함수의 매개변수로 전달하는것을 콜백함수라 한다.
function aaa (callback){
	for(let i = 0 ; i < 2 ; i++){
    	callback(i) //callback매개변수로 함수를 호출한다.
    }
}
function bbb (i){
	console.log(`${i}번째 호출`)
}

aaa(bbb)
// 0번째 호출
// 1번째 호출

화살표함수

  • function키워드 대신 화살표를 사용한다.
(매개변수) => {

}

(매개변수) => 리턴값 

타이머함수

  • 특정시간에 함수를 호출할 수 있는것을 타이머 함수라한다.
    setTimeout() : 특정시간이 지난후 함수 실행
    setInterval() : 특정시간마다 실행
    clearTimeout() : setTimeout()으로 설정한 타이머 제거
    clearInterval() : setInterval()로 설정한 타이머 제거
setTimeout(() => {
	console.log(`1초후 실행`)
},1000)

setInterval(() => {
	console.log(`1초마다 실행`)
},1000)

0개의 댓글