Java script

[JavaScript] for .. in 문

은나으니 2023. 12. 7. 16:05

for.. in 문을 이용하면 객체 내부에 있는 모든 프로퍼티들을 불러올 수 있다.

for ( let 변수 in 객체) 

객체의 프로퍼티를 하나씩 변수에 저장 (객체의 모든 프로퍼티들이 한번씩 선언한 변수에 저장된다)

let myObject = {
  first: '알고리즘의 정석',
  'second class': '컴퓨터 개론',
  third: '프로그래밍 기초',
};

for (let key in myObject) {
  console.log(myObject[key]);
}

 

결과값

알고리즘의 정석
컴퓨터 개론
프로그래밍 기초

숫자형(양수) 프로퍼티 이름 사용 

let myObject = {
  300: '정수',
  1.2: '소수',
};

// 이떄 300과 1.2의 type은 string

숫자형 네임도 가능하다! 하지만 숫자형으로 저장되는 것이 아닌 문자열로 저장된다

console.log(myObject['300']);
console.log(myObject['1.2']);
console.log(myObject.300); // Error!
console.log(myObject.1.2); // Error!

객체는 정수형 프로퍼티 네임을 오름차순으로 먼저 정렬하고, 나머지 프로퍼티들은 추가한 순서대로 정렬하는 특징

let myObject = {
  3: '정수3',
  name: 'codeit',
  1: '정수1',
  birthDay: '2017.5.17',
  2: '정수2',
};

for (let key in myObject) {
  console.log(key);
}

 

결과값

1
2
3
name
birthDay

 

콘솔에 myObject를 출력하였을 때에도 결과값은 똑같다.

{1: "정수1", 2: "정수2", 3: "정수3", name: "codeit", birthDay: "2017.5.17"}

 

*주의*

자동으로 정렬되는 특성이 장점처럼 느껴질 수도 있지만 대부분의 경우에는 의도치 않은 결과를 가져올 수 있다는 점