티스토리 뷰

javascript

arguments

J_estrella 2017. 12. 5. 00:56

arguments는 배열처럼 보이지만 배열은 아닌 함수의 지역변수이다. 

함수가 실행되면 arguments가 생성된다. 




function a(){
    console.log(arguments);

    console.log(arguements.length);

}

a(1,2,3,4); //[ 1,2,3,4, callee: ƒ, Symbol(Symbol.iterator): ƒ ]  , 4

a(); // [callee: ƒ, Symbol(Symbol.iterator): ƒ] , 0


arguments는 배열은 아니지만 length 프로퍼티를 가지고 있는 object다. 


따라서 arguments는 pop메소드를 가지고 있지 않다. 그러나 array처럼 만들어줄 수 있다. 


var args = [ ...arguments];
console.log(args);

}

a(1,2,3,4); // [1,2,3,4];



위와 같이 es6문법에서 등장한 전개 연산자를 이용해서 배열로 만들어줄 수 있고,

var args = Array.prototype.slice.call(arguments);

console.log(args);

}
a(1,2,3); //[1,2,3];


slice메소드로 배열로 만들어줄 수 있다.

그러나 자바스크립트엔진 최적화에 있어서 기피된다. 


arguments 속성으로는

arguments.callee : 현재 실행중인 함수를 가리킨다.
arguments.caller : 현재 실행중인 함수를 호출한 함수를 가리킨다.
arguments.length가 있다. 

'javascript' 카테고리의 다른 글

요소를 가져올 때의 형식  (0) 2017.08.22
함수의 정의방법  (0) 2017.08.07
변수를 초기화하는 방법  (0) 2017.08.07
데이터 타입과 호출방식  (0) 2017.08.02
호이스팅  (0) 2017.07.25
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함