function () {} // 익명 함수
function 함수이름() {} // 선언적 함수
function 함수(매개변수, 매개변수, 매개변수){
문장
문장
return 리턴값
}
함수이름 (매개변수, 매개변수 = 기본값, 매개변수 = 기본값)
function sample(a = 기본값, b) {}
<script>
function isLeapYear(year = new Date().getFullYear){
console.log(`매개변수 year : ${year}`)
return (year % 4 === 0) && (year % 4 !== 0) || (year % 400 ===0)
}
console.log(`올해는 윤년일까? : ${isLeapYear()}`)
// 매개변수 year : function getFullYear() { [native code] }
// 올해는 윤년일까? : false
</script>
예제를 풀어보는 과정에서 콘솔창에 [native code] 발생
<script>
function min(first, ...rests){
let output
let items
if (Array.isArray(first)){
output = first[0]
items = first
}else if(typeof(first) === 'number'){
output = first
items = rests
}
for (const item of items){
if (output > item){
output = item
}
}
return output
}
console.log(`min(배열): ${min(52,273,32,103,4)}`)
console.log(`min(숫자, ...) : ${min(52,273,39,2,24)}`)
// min(배열): 4
// min(숫자, ...) : 2
</script>
<script>
Array.isArray([1, 2, 3]); // true
Array.isArray({foo: 123}); // false
Array.isArray('foobar'); // false
Array.isArray(undefined); // false
</script>
앞서 배운 반복문을 통해 함수파트를 공부하는데 부족함이 느껴져 반복문을 다시 한번 봐야할 것 같다. 새로운 연산자와 메서드가 간간히 보이는데 팀원분이 알려준 mdn을 통해 좀 더 자세하게 알 수 있었다. 앞으로도 mdn과 좀 더 친하게 지내야 겠다. 아 반복문이랑 함수는 공부 부족하니 더 할 수 있도록!