반응형
함수 - arguments 객체
함수가 실행되면 그 안에는 arguments라는 특별한 지역변수가 자동으로 생성됩니다.
arguments의 타입은 객체 입니다.(console.log( typeof arguments) 로 확인해보세요!)
자바스크립트 함수는 선언한 파라미터보다 더 많은 인자를 보낼 수도 있습니다.
이때 넘어온 인자를 arguments로 배열의 형태로 하나씩 접근할 수가 있습니다.
arguments는 배열타입은 아닙니다.
따라서 배열의 메서드를 사용할 수가 없습니다.
function a() { console.log(arguments); } a(1,2,3);
자바스크립트의 가변인자를 받아서 처리하는 함수를 만들때 등에서 arguments속성을 유용하게 사용할 수가 있습니다.
응용해보기
- arguments속성을 사용해서 , 1~무한대까지 인자를 받아 합을 구하는 함수를 만들어봅시다.
function sum() {
var sum = 0;
var len = arguments.length;
for(var i=0; i<len; i++){
sum += arguments[i];
}
return sum;
}
var getSum = (...arguments) => {
var sum = 0;
var len = arguments.length;
for(var i=0; i<len; i++){
sum += arguments[i];
}
return sum;
}
console.log(sum(1,2,3,8));
console.log(getSum(1,2,3));
생각해보기
- arrow function
ES2015에는 arrow function이 추가됐다.
간단하게 함수를 선언할 수 있는 문법으로 처음에는 꽤 낯설수 있습니다.
하지만 점점 많이 사용되고 있는 syntax이므로 같이 알아두어도 좋을 것 같습니다.
function getName(name) {
return "Kim " + name ;
}
//위 함수는 아래 arrow함수와 같다.
var getName = (name) => "Kim " + name;
반응형
'Programming > MERN' 카테고리의 다른 글
Vanilla JS 7) DOM (0) | 2020.12.26 |
---|---|
Vanilla JS 6) call back function - Asynchronous (0) | 2020.12.26 |
Vanilla JS 3) function - hoisting (0) | 2020.12.25 |
Vanilla JS 2) compare - loop - string (0) | 2020.12.24 |
Vanilla JS 1) variable - operator - type (0) | 2020.12.24 |