9/26
Q. 어떤 함수를 언제 활용해야 할까?
👉🏻 아무 것이나 원하는 대로!!
함수의 기본 형태
function () { }
선언적 함수의 형태
function 함수() { }
let 함수 = function () {};
와 동일한 기능 수행
prompt()
declare function prompt(message?: string
, _default?: string): string | null;
매개변수와 리턴값을 갖는 함수의 형태
function 함수(매개변수, 매개변수, 매개변수) { 문장 문장 return 리턴값 }
function isLeapYear(year) {
return (year % 4 === 0) && (year % 100 !== 0) || (year % 400 === 0)
}
console.log(`2020년은 윤년일까? === ${isLeapYear(2020)}`)
console.log(`2010년은 윤년일까? === ${isLeapYear(2010)}`)
//출력결과
2020년은 윤년일까? === true
2010년은 윤년일까? === false
function sumAll(a,b) {
let output = 0
for (let i = a; i <= b; i++) {
output += i
}
return output
}
console.log(`1부터 100까지의 합: ${sumAll(1, 100)}`)
console.log(`1부터 500까지의 합: ${sumAll(1, 500)}`)
function min(array) {
let output = array[0]
for (const item of array) {
// 현재 output 보다 더 작은 item이 있다면
if (output > item) {
// output 값을 item으로 변경
output = item
}
}
return output
}
const testArray = [52, 273, 32, 103, 275, 24, 57]
console.log(`${testArray}중에서`)
console.log(`최솟값 = ${min(testArray)}`)
9/26
: 가변 매개변수 함수를 구현할 때 사용된다.
가변 매개변수 함수
: 호출할 때 매개변수의 개수가 고정적이지 않은 함수
📌가변 매개변수 함수 사용 방법
function 함수 이름(...나머지 매개변수) {}
- 함수의 매개변수 앞에 마침표 3개(...)를 입력하면 매개변수들이 배열로 들어온다.
array = [52, 273, 32, 103]
function 함수(...array)
{}
여기서 (...array) = (52, 273, 32, 103)
function sample(...items) {
console.log(itmes)
}
sample(1, 2) // [1, 2] 단순하게 숫자의 나열로 입력했지만 배열로 출력된다는거!
function 함수 이름 (매개변수, 매개변수, ...나머지 매개변수) {}
function sample(a, b, ...c) {
console.log(a, b, c)
}
sample(1, 2) // 1, 2, []
sample(1, 2, 3) // 1, 2, [3]
sample(1, 2, 3, 4) // 1, 2, [3, 4]
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,275,24,57])}`)
console.log(`min(숫자, ...): ${min(52,273,32,103,275,24,57)}`)
출력결과
min(배열): 24
min(숫자, ...): 24
📌
- 나머지 매개변수 : 함수를
구현
할 때 사용되는 개념- 전개 연산자 : 함수를
호출
할 때 사용되는 개념
// 단순하게 매개변수를 모두 출력하는 함수
function sample(...items) {
console.log(items)
}
// 전개 연산자 사용 여부 비교하기
const array = [1, 2, 3, 4]
console.log('# 전개 연산자를 사용하지 않은 경우')
sample(array)
console.log('# 전개 연산자를 사용한 경우')
sample(...array)
const array2 = ['사과', '배']
sample(array2)
sample(...array2)
sample('사과', '배')
전개 연산자를 사용하지 않은 경우
[ [ 1, 2, 3, 4 ] ]
전개 연산자를 사용한 경우
[ 1, 2, 3, 4 ]
[ [ '사과', '배' ] ] // 전개 연산자 미사용
[ '사과', '배' ] // 전개 연산자 사용
[ '사과', '배' ] // 단순 string의 나열로 직접 입력(= 전개연산자)
나머지 매개변수
를 사용하게 되면 그냥 단순히 숫자형,문자열로만 입력해도 배열로 반환된다.