본문 바로가기

프론트엔드관련 책예제실습정리/모던자바스크립트

12-5 함수_인수확인(매개변수 인수전달시 부적절한 반환 방지)

//12-5 인수확인
/*어떤타입의 인수가 전달되어야 하는지, 어떤 타입의 값을 반환해야하는지 명확하지 x
(자바스크립트는 동적타입언어라 매개변수 타입을 사전에 지정할수x)*/

//1.매개변수를 통해 전달된 인수값이 부적절한 경우 에러 발생시키기
{
  function add(x,y){
  if(typeof x !=='number' || typeof y !=='number'){
    throw new TypeError('인수는 모두 숫자 값이어야 한다')
  }
  return x +y;
}
console.log(add(2))//TypeError 인수는 모두 숫자 값이어야 한다
console.log(add('a','b'))//TypeError 인수는 모두 숫자 값이어야 한다
}

//2.인수가 전달되지 않은 경우 단축평가를 사용해 매개변수에 기본값 할당

{
  function add(a,b,c){
    a = a || 0;
    b = b || 0;
    c = c || 0;
    return a + b + c;
  }
   console.log(add(1, 2, 3 , 5)) //6 
  console.log(add(1, 2, 3)) //6
  console.log(add(1,2))//3
  console.log(add())//0
}

{
  function add(a =0, b =0, c=0){
    return a + b+ c;
  }
   console.log(add(1, 2, 3 , 5)) //6 
  console.log(add(1, 2, 3)) //6
  console.log(add(1,2))//3
  console.log(add())//0
}