• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

for~in문장 형태 질문드립니다

21.04.08 14:20 작성 조회수 83

0

  1. for(변수 in 오브젝트) 문장;
  2. for( 표현식 in 오브젝트) 문장;

1.

1번과 2번의 차이에 대해서 질문드립니다.

강의에서 설명해주신

for (var item in sports) {

}

형태가 2번에 해당한 것인가요?

2.

1번의 형태는  변수를 먼저 선언을 하고, 그 변수를

for~in문에 사용하는 것인가요

var item;

for( item in sports){

}

답변 3

·

답변을 작성해보세요.

1

내가 작성한 코드와 비교해보세요. 다른 것이 있습니다. 지금은 표현식은 신경쓰지 않아도 됩니다. 계속 접하게 되므로 그 때 알아도 됩니다. 

1

형태가 2번에 해당한 것인가요?
==> 2번이 아니라 1번입니다.

1번의 형태는  변수를 먼저 선언을 하고, 그 변수를 for~in문에 사용하는 것인가요?
==> for (var item in sports) { ... } 형태로 사용합니다.

---------- 표현식 형태
var sports = {
  ski: "스키"
};
function getItem(){
  return "ski"
};
console.log(getItem() in sports);

마지막 줄의 코드가 실행되면, 우선 getItem() 함수를 호출하며 호출된 함수에서 반환하는 값이 "ski"입니다.
이것이 표현식입니다. 표현식의 범위가 매우 넓습니다. 1 + 2도 표현식이고, 함수 호출도 표현식입니다.
결국 ("ski" in sports) 형태로 실행하게 되며, sports 오브젝트에 "ski"가 있으므로 true가 출력됩니다.



 

0

del님의 프로필

del

질문자

2021.04.08

감사합니다!

표현식을 사용한 예시를 알 수 있을까요

혼자 시도해봤는데, 에러가 발생합니다

var sports = {
  ski: "스키"
};
function getItem() {
  return "ski";
};
console.loggetItem() in sports);//true
for(getItem() in sports){
  
};
// label1.js:11 Uncaught ReferenceError: Invalid left-hand side in for-loop
//     at label1.js:11