함수의 기본형태
익명함수
function () {}
선언적 함수
function 함수() {
}
let 함수 = function () {};
매개변수와 리턴값
function 함수 (매개변수, 매개변수, 매개변수) {
문장
문장
return 리턴값
}
나머지 매개변수
개수가 고정적이지 않은 가변 매개변수 함수를 자바스크립트에서 구현할 때 나머지 매개변수를 사용
매개변수 앞에 마침표 3개를 입력하면 매개변수들이 배열로 들어온다
function 함수 이름(...나머지 매개변수) { }
function sample(...items) {
console.log(items)
}
sample(1, 2)
sample(1, 2, 3)
sample(1, 2, 3, 4)
//실행결과
[1, 2]
[1, 2, 3]
[1, 2, 3, 4]
기본 매개변수
함수 이름(매개변수, 매개변수=기본값, 매개변수=기본값)
키워드정리
- 익명 함수란 이름이 없는 함수로 function () {} 형태로 만든다
- 선언적 함수란 이름이 있는 함수로 function 함수이름 () {} 형태로 만든다
- 함수의 괄호 안에 넣는 변수를 매개변수라고 한다. 매개변수를 통해 함수는 외부의 정보를 입력받을 수 있다.
- 함수의 최종적인 결과를 리턴값이라고 한다. 함수 내부에 return 키워드를 입력하고 뒤에 값을 넣어서 생성한다.
- 가변 매개변수 함수란 매개변수의 개수가 고정되어 있지 않은 함수를 의미한다. 나머지 매개변수(...)를 활용해서 만든다.
- 전개 연산자란 배열을 함수의 매개변수로써 전개하고 싶을 때 사용한다.
- 기본 매개변수란 매개변수에 기본값이 들어가게 하고 싶을 때 사용하는 매개변수이다.
Q1. A부터 B까지 범위를 지정했을 때 범위 안의 숫자를 모두 곱하는 함수 만들기
function multipleAll(a, b) {
let output = 1
for (let i = a; i <= b; i++) {
output *= i
}
return output
}
console.log(multipleAll(1,2))
console.log(multipleAll(1,3))
//출력
2
6
Q2. 최대값을 찾는 max() 함수 만들기
- 매개변수로 max([1, 2, 3, 4])와 같은 배열을 받는 max() 함수
function max(array) {
let output = array[0]
for (const item of array) {
if (output < item) {
output = item
}
}
return output
}
console.log(max([1, 2, 3, 4]))
- 매개변수로 max(1, 2, 3, 4)와 같은 숫자를 받는 max() 함수
function max(...items) {
let output = items[0]
for (const item of items) {
if (output < item) {
output = item
}
}
return output
}
console.log(max(1, 2, 3, 4))
- 매개변수로 배열과 숫자를 받는 max() 함수
function max(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(`max(배열): ${max([1, 2, 3, 4])}`)
console.log(`max(숫자, ...): ${max(1, 2, 3, 4)}`)
'Development > JavaScript' 카테고리의 다른 글
JS기초_5.1(객체기본) (0) | 2023.03.10 |
---|---|
JS기초_4.2(함수 고급) (0) | 2023.03.09 |
JS기초_3.2(반복문) (0) | 2023.03.09 |
JS 기초_3.1(배열) (4) | 2023.03.08 |
JS 기초_2(조건문) (0) | 2023.03.07 |