매개변수 복습
function timeToGoHome(speed, distance){ //speed, distance : 매개변수
let time = distance / speed;
return time;
}
timeToGoHome(20, 100); //20, 100 : 전달인자(arguments)
전달인자(arguments)의 길이가 유동적이라면
Rest Parameter(...)를 이용해 매개변수를 지정해준다. '[ES6]'
eg1.
function getNum( ...nums ){
console.log(nums);
}
getNum(4,3,5,10); //[4, 3, 5, 10]
eg2.
function getMaxNum(...nums){
return nums.reduce(function(acc, current){
if(acc>current){
return acc;
}
else{
return current;
}
});
}
getMaxNum(2,5,2,10); //10
arguments 키워드를 사용한다 '[ES5]'
function getNum(){
console.log(arguments); //{0:3, 1:1, 2:5, 3:10} 이 arguments 객체는 배열같아 보이지만, 배열이 아닙니다. 이를 '유사배열'이라고 부릅니다.
}
getNum(3,1,5,10);
//Arguments(4) [3, 1, 5, 10, callee: ƒ, Symbol(Symbol.iterator): ƒ]
//Arguments(4) [3, 1, 5, 10, callee: ƒ, Symbol(Symbol.iterator): ƒ] 화살표 누르면 나오는 내용, 화살표 callee, Symbol, proto 옆에 더 있음
0: 3
1: 1
2: 5
3: 10
callee: ƒ getNum()
length: 4
Symbol(Symbol.iterator): ƒ values()
proto: Object
arguments[0]; //3
arguments[1]; //1
arguments.forEach //undefined 배열의 method를 사용할 수 없음