• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

대괄호를 작성하지 않았을때의 결과값이 '1 2 3' 이나옵니다.

20.10.20 23:49 작성 조회수 142

1

안녕하세요 강사님. 

예제로 작성해주신 [코드1]를 작성해서 실행해보고 있는데, 

console.log(...obj); 형태로 대괄호를 작성하지 않고, 실행을 해보았는데 마지막 3 만 반환되는게 아닌 '1 2 3' 이 출력됩니다. 제가 잘못한 걸까요?

const obj = {};
obj[Symbol.iterator] = function*(){
	yield 1;
	yield 2;
	yield 3;
};
console.log(...obj);

답변 1

답변을 작성해보세요.

2

체크 해보니 강좌를 만들때와 다르게 나오며 현재는 1, 2, 3이 반환되는 것이 맞습니다. 빨리 강좌를 편집해야 겠습니다.

한편, console.log(...obj) 형태로 호출할 수는 있으나 console.log()를 사용하지 않고 "const result = ...obj" 형태로 실행 결과를 받으려고 할 때는 문법 에러가 발생하므로 현실적으로는 ...obj 형태를 사용할 수 없습니다.
반면, "cosnt result = [...obj]" 형태는 호출이 되며 [1, 2, 3] 형태로 result 변수에 할당됩니다.