패스트캠퍼스

javaScript-함수(매개변수 패턴)

용용it 2023. 5. 15. 19:32

기본값(Default value)

// 매개변수 패턴(Parameter pattern)
// 기본값(Default value)

function sum(a, b) {
	return a + b
}

console.log(sum(1,2)) // 3
console.log(sum(7)) // NaN

sum 함수의 a와 b는 각각 인수를 전달받아 return값을 반환한다.

하지만 console.log(sum(7)) 같은 경우에는 NaN를 반환한다. 

이를 막기 위해 전달 받을 인수가 있는 곳에 기본값을 지정한다.

function sum(a, b = 1) {
	return a + b
}

console.log(sum(1,2)) // 3
console.log(sum(7)) // 8

 


 

 

구조 분해 할당(Destructuring assignment)

 

구조분해할당은 프로그래밍에서 여러 값을 배열이나 객체에서 추출하여 개별 변수에 할당하는 문법이다.

또한  배열, 객체 등의 데이터 구조에서 원하는 값을 추출하여 변수에 할당하는데 사용된다.

// 객체의 구조분해할당
const user = { 
	name: 'DRAGON',
    age: 27,
    email: 'test@gmail.com'
}

function getName({ name }){
	return name
}
function getEmail({ email = '이메일이 없습니다.' }) {
	return email
}


console.log(getName(user)) // DRAGON
console.log(getEmail(user)) // test@gmail.com

 

 

 

// 배열의 구조 분해 할당

const fruits = ['Apple', 'Banana', 'Cherry']
const numbers = [1, 2, 3, 4, 5, 6, 7, 8]

function getSecondItem([, b]) {
	return b
}

console.log(getSecondItem(fruits)) // Banana
console.log(getSecondItem(numbers)) // 2

나머지 매개변수(Rest parameter)

 

나머지 매개변수 구문을 사용하면 함수가 정해지지 않은 수의 매개변수를 배열로 받을 수 있다.

 

function sum(...rest) {
	console.log(rest)
    console.log(arguments)
    return rest.reduce(function (acc,cur) {
    	return acc + cur
    }, 0)
}

console.log(sum(1, 2)) // 3 
console.log(sum(1, 2, 3, 4)) // 10
console.log(sum(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)) // 55