ㅇㅇㅈ Blog

프론트엔드 수행중

0%

for .. in 반복문

for..in

for in 반복문은 객체에서 주로 사용

  • 객체 자료형에서 ‘열거’ 할 수 있는 자료들을 순회할 수 있도록 해준다
  • 특정 순서에 따라 인덱스를 반환하는 것을 보장 할 수 없다 (반복되는 순서가 구현에 따라 다르다)
  • 배열 데이터에서는 인덱스값이 중요하므로 forEach나 for..of를 권장한다
1
2
3
4
5
6
7
8
9
10
11
12
13
for (variable in object) { ... }

// 예제
const object = { a: 1, b: 2, c: 3 };

for (const property in object) {
console.log(`${property}: ${object[property]}`);
}

// expected output:
// "a: 1"
// "b: 2"
// "c: 3"

variable : 매번 반복마다 객체의 키 값이 variable로 지정된다

object : 반복 작업을 수행할 객체 (열거형 속성을 가지고 있는객체 )

객체 데이터는 만들때 개발자가 적은 키:밸류 값만 저장되는게 아닌 그 외 숨겨진 속성 3개가 같이 저장된다

1
2
3
4
5
6
7
8
9
10
11
숨겨진 속성을 확인해보는 메서드 Object.getOwnPropertyDescriptor()

let book = {
title: "자바스크립트 완벽하게 이해하기",
price: 32000,
author: "훈이",
publisher: "자바스크립트짱짱",
};

// Obejct.getOwnPropertyDescriptor(객체명,'객체키명')
console.log(Object.getOwnPropertyDescriptor(book, "title"));

숨겨진 속성들을 이용해 객체데이터의 값을 열거불가,수정불가,삭제불가 등을 할 수있음..

writable 이 false 이면 변경불가 → default : true

enumerable 이 false 이면 열거 불가 → default : true

configurable 이 false 이면 enumerable 및 configurable을 변경 불가 및 삭제 불가 하지만 쓰기 writable은 가능 → default : true

[JavaScript]객체 속성(writable, enumerable, configurable)