//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
}