자바스크립트는 객체 지향 프로그래밍 언어이며, 객체는 속성(property)과 메서드(method)의 모음입니다. 이 중에서 속성은 객체가 가지는 특징이나 상태를 나타냅니다.
자바스크립트에서 객체의 속성은 객체의 프로퍼티(property)라고도 불리며, 프로퍼티는 이름(key)과 값(value)의 쌍으로 구성됩니다. 객체의 프로퍼티에는 다양한 타입의 값이 할당될 수 있습니다.
프로퍼티의 생성과 접근
프로퍼티를 생성하고 접근하는 방법에는 두 가지가 있습니다. 하나는 점 표기법(dot notation)을 사용하는 방법이고, 또 다른 하나는 대괄호 표기법(bracket notation)을 사용하는 방법입니다.
// 객체 생성
let person = {};
// 점 표기법을 사용하여 프로퍼티 생성
person.name = "John";
person.age = 30;
// 대괄호 표기법을 사용하여 프로퍼티 생성
person["height"] = 180;
person["weight"] = 70;
// 점 표기법을 사용하여 프로퍼티 접근
console.log(person.name); // 출력: John
console.log(person.age); // 출력: 30
// 대괄호 표기법을 사용하여 프로퍼티 접근
console.log(person["height"]); // 출력: 180
console.log(person["weight"]); // 출력: 70
프로퍼티의 다양한 타입
자바스크립트에서 프로퍼티의 값은 다양한 타입일 수 있습니다. 일반적으로 문자열, 숫자, 불리언 등의 기본 타입을 할당하지만, 함수나 객체 또는 배열과 같은 복합 타입도 할당할 수 있습니다.
let person = {
name: "John",
age: 30,
sayHello: function() {
console.log("Hello!");
},
address: {
city: "Seoul",
country: "South Korea"
},
hobbies: ["reading", "playing guitar", "hiking"]
};
console.log(person.name); // 출력: John
console.log(person.age); // 출력: 30
person.sayHello(); // 출력: Hello!
console.log(person.address.city); // 출력: Seoul
console.log(person.hobbies[0]); // 출력: reading
프로퍼티 수정과 삭제
객체의 프로퍼티는 동적으로 변경할 수 있습니다. 프로퍼티를 수정할 때는 해당 프로퍼티에 새로운 값을 할당하면 됩니다. 또한, delete
키워드를 사용하여 프로퍼티를 삭제할 수 있습니다.
let person = {
name: "John",
age: 30
};
// 프로퍼티 수정
person.age = 35;
console.log(person); // 출력: { name: "John", age: 35 }
// 프로퍼티 삭제
delete person.name;
console.log(person); // 출력: { age: 35 }
프로퍼티의 순회
객체의 모든 프로퍼티에 접근하기 위해서는 프로퍼티를 순회해야 합니다. for...in
루프를 사용하여 객체의 모든 프로퍼티를 순회할 수 있습니다.
let person = {
name: "John",
age: 30,
gender: "male"
};
for (let key in person) {
console.log(key + ": " + person[key]);
}
// 출력:
// name: John
// age: 30
// gender: male
프로퍼티 순회 순서는 보장되지 않으므로 순서에 의존하지 않고 프로퍼티를 처리해야 합니다.
자바스크립트 객체의 속성(Property)은 객체를 유연하게 다룰 수 있게 해주는 중요한 개념입니다. 프로퍼티를 효율적으로 활용하여 객체를 다루는 코드를 작성할 수 있습니다.