기본 콘텐츠로 건너뛰기

라벨이 parameter인 게시물 표시

arguments가 뭐야?

 es6를 배우다 보면 뭐 물론... 지금은 자바스크립트겠지만... arrow function과 일반 function의 차이로 arguments가 없다라는 문장을 항상 볼 수 있다.  그런데... 배우는 입장에서 arguments? 그게 뭔데? 라는 생각을 해본적이 있을 것이다. 딱히 알았다고 해도 이걸 어따 쓰지... 이 생각도 들었을 것이다. 일단 parmeter와 argument의 차이를 알자. function foo (bar) { console . log (bar) } foo ( 3 )  위의 함수는 뭐 설명하기도 민망한 함수를 만들어 보았다. 뭐 설명 하는데 어려운 코드가 필요 한것은 아니니. foo를 3이라는 인자(argument)로 호출 하였다. foo라는 함수는 bar라는 매개변수(paramter) 를 console.log의 인자로 이용하여 호출 하고 있다.  자 여기서 arguments와 parameter는 큰 차이를 갖는다. function foo (bar) { console . log (bar) // 1 console . log (arguments) // Arguments(3) [1, 2, 3, callee: ƒ, Symbol(Symbol.iterator): ƒ] } foo ( 1 , 2 , 3 ) parameter bar를 이용해서는 하나의 값만 갖지만, arguments로 접근하여 Arguments 객체에 1, 2, 3값이 있는 것을 볼수있다. Arguments는 유사배열이라고 보면 된다. 인덱스가 있고, length가 있으며 iterable protocol을 만족 하고 있다. 여기서 특이한 호출 방법을 알려주자면 아래와 같다. function foo (bar) { console . log (bar) // 1 console . log (arguments) // Arguments(3) [1, 2, 3, callee: ƒ, Symbol(S...