인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

del님의 프로필 이미지
del

작성한 질문수

자바스크립트 비기너: 튼튼한 기본 만들기

2. 프로퍼티 값 추출, for~in 문

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

작성

·

171

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
질문자

감사합니다!

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

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

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
del님의 프로필 이미지
del

작성한 질문수

질문하기