함수의 종류와 기본 형태 및 특성
1) 익명/선언
2) 기본 형식(사용자 정의 함수)
매개변수 활용하기
1) 매개변수 처리 기본
2) 가변형 매개변수 처리
기본 함수형은 동일한 매개변수 갯수나 타입에 의해서 처리되지만, 가변형은 함수명만 같으면
아래와 같은 매개변수가 다르더라도 처리를 할 수 있게 해준다.
ex) call()
call(1000,2000)
call(1000,2000,3000)
1) arguments를 통한 처리
function call(){
arguments라는 내장 객체에 의해서, 여러개의 매개변수를 가변적으로 처리
call()의 경우 : arguments = []
call(1000,2000)의 경우 : arguments = [1000,2000]
call(1000,2000,3000)의 경우 : arguments = [1000,2000,3000]
배열로 담겨져있어 사용할 수 있다. 즉, 매개변수를 배열로 담아서 처리가 가능하다.
argument.length : 매개변수의 갯수
for(var idx in arguments){
idx : 인덱스
arguments[idx] : 각각의 단위 데이터
}
}
2) ...변수명
function call(...params){
매개변수를 ...배열명으로 받아서 처리
arguments라는 내장 객체에 의해서, 여러개의 매개변수를 가변적으로 처리
call()의 경우 : params = []
call(1000,2000)의 경우 : params = [1000,2000]
call(1000,2000,3000)의 경우 : params = [1000,2000,3000]
}
3) default값 처리 : 해당 매개변수가 없을 때, default값으로 처리하는 경우
function call(param1=1000,param2=1000,param3=1000){
해당 매개변수로 데이터값이 전달되지 않았을 때, 설정한 default값이 호출된다.
call() 경우 : param1=1000,param2=1000,param3=1000
매개변수가 없으므로 모두 다 default값으로 설정된다.
call(1000,2000) 경우 : param1=1000,param2=2000,param3=1000
call(3000,4000,5000)의 경우 : param1=3000,param2=4000,param3=5000
}
arguments 내장 객체 활용(구버전 es6이전)
1) 형식
function 함수명(){
var args = arguments // 매개변수 객체 선언
}
함수명()
함수명(2,3)
함수명("문자열1","문자열2","문자열3")
매개변수를 다르게 호출하더라도 arguments에서 동적 배열로 받아서 처리한다.
var body = document.querySelector("div")
body.innerHTML=""
function call(){
var show=""
for(var idx in arguments){
show += arguments[idx]+","
}
body.innerHTML+=show+"<br>"
}
call(1) // arguments = [1]
call(1,2) // // arguments = [1,2]
call('가','나','다') //// arguments = ['가','나','다']