안녕하세요!
이 번 포스팅에서는 매개변수에대해 공부해보겠습니다.
알고있는 내용이더라도 코딩할 때 습관처럼 사용하지 않으면 의미가 반감되는 것 같습니다.
- 매개변수에 기본값을 사용해 가독성 높히기
const test = (name,num,message) => {
return `${name}님 ${num}번 째 방문, ${message}`
}
console.log(test())
인사메세지를 리턴 하는 함수를 작성해봤습니다.
const test = (name,num,message) => {
if(!name || !num || !message){
return 'ERROR'
}
return `${name}님 ${num}일 째 방문, ${message}`
}
console.log(test('jack',0,'hello'))
// result
ERROR
이렇게 작성하게되면 인수에 0이 들어가면 false로 인식해 ERROR을 리턴합니다.
그리고, 함수 내에서 작성하게되면 다소 복잡하기도 합니다.
그럼,
매개변수 기본값을 사용해 보겠습니다
const greeting = (name = 'anonymous',num='0', message='hello') => {
return `${name}님 ${num}일 째 방문, ${message}`
}
console.log(greeting('jack',0,'hello'))
// result
jack님 0일 째 방문, hello
주의할 점은 매개변수가 null일 경우에는 기본값을 사용하지 않습니다.
// result
jack님 null일 째 방문, hello
주의해야 할 점이 있긴 하지만, 기본값을 사용함으로서 명시적으로 매개변수가 어떤 자료형을 가지는지 어떤형태를 띄는지 알 수 있습니다.
그리고 기본값이 작성되어있으므로 기본값을 사용하고 싶을 땐 undefined를 넘겨주면 됩니다.
이번에는 매개변수에 객체를 이용해보겠습니다.
const laptop = {
model : 'ab801z',
manufacturer : 'samsung',
price : '1000000',
OS : 'window10',
weight : '1.5'
//...
//...
}
laptop 객체에는 노트북 정보를 담은 많은 속성들이 있습니다.
function someFunc (product) {
const {model} = product
return model
}
console.log(someFunc(laptop))
// result
ab801z
function someFunc (product) {
const {model = 'not found'} = product
return model
}
const dog = {}
console.log(someFunc(dog))
// result
not found
function someFunc (product) {
const {model = 'not found', ...restParam} = product
return {
model,
...restParam
}
}
console.log(someFunc(laptop))
// result
{
model: 'ab801z',
manufacturer: 'samsung',
price: '1000000',
OS: 'window10',
weight: '1.5'
}
function someFunc (product) {
const {model ,...rest} = product
const additional = Object.keys(rest).map(item=>`${rest[item]}`)
return [model,...additional]
}
console.log(someFunc(laptop))
// result
[ 'ab801z', 'samsung', '1000000', 'window10', '1.5' ]
function someFunc (product) {
const {model : productCode} = product
return {
productCode
}
}
console.log(someFunc(laptop))
// result
{ productCode: 'ab801z' }
const phoneNum = ['010','0000','1111']
function getPhoneNum (phoneNum) {
const [first,second, third] = phoneNum
return `${first}-${second}-${third}`
}
console.log(getPhoneNum(phoneNum))
// result
010-0000-1111
const phoneNum = ['010','0000','1111', 'KT', 'Galaxy']
function getPhoneNum (phoneNum) {
const [first,second,third,...rest] = phoneNum
return `${first}-${second}-${third},${rest}`
}
console.log(getPhoneNum(phoneNum))
// result
010-0000-1111,KT,Galaxy
- Map은 해체할당을 사용할 수 없습니다.
매개변수에대해 한 번 정리해보았습니다.
유용하지만 습관적으로 사용하지않으면 무용지물인 것 같습니다.
익숙해질 때 까지 사용하는 수 밖에 없는 것 같아요!
감사합니다!