본문 바로가기
웹/JavaScript

JS 객체와 속성

by 보먀 2024. 1. 4.
728x90
반응형

JS 에서 객체란?

 

  • JavaScript에서 객체는 속성과 타입을 가진 독립적인 개체(entity)
  • 속성 이름 : 속성 값 (또는 key : value)
  • 속성 이름은 string 타입
  • 속성 값은 모든 자료형 가능

 

객체 생성하기

 

// 객체 초기자 사용
const myCar = {  
  make: "Ford",  
  model: "Mustang",
  // 이름 규칙에 벗어나는 속성 이름은 따옴표 사용
  'creation-year': 1969,
  'license plate': 1234,
  '1owner': 'A',
  '2owener': undefined,
};
// 생성자 함수 사용하기
const myCar = new Object();  
myCar.make = "Ford";  
myCar.model = "Mustang"; 
// 이름 규칙에 벗어나는 속성 이름은 따옴표 사용
myCar['creation-year'] = 1969;
myCar['license plate'] = 1234;
myCar['1owner'] = 'A';
myCar['2owner'] = undefined;

 

객체에 접근하기

 

// 점 표기법 (objectName.propertyName)
console.log(myCar.make);
// 대괄호 표기법 (objectName['propertyName'])
// 이름 규칙에 어긋나는 이름을 사용하는 속성들은 대괄호 표기법으로 접근 가능
console.log(myCar['creation-year']);
console.log(myCar['license plate']);
console.log(myCar['1owner']);


만약 객체에 존재하지 않는 속성에 접근한다면?

console.log(myCar.color); // undefined 출력됨, null(x)

 

객체 속성 추가/제거하기

 

// 속성 추가
myCar.color = 'black';

// 속성 제거
delete myCar.color;

 

in 연산자

 

// 객체에 속성 존재 여부를 확인하기 위해 사용
// 'propertyName' in object
console.log(obj.color !== undefined); // 객체에 존재하지 않는 속성 -> false
console.log('color' in myCar); // 객체에 존재하지 않는 속성 -> false
console.log('2owner' in myCar); // 정의되지 않은 속성 -> true


만약 존재하는 속성값이 undefined 일 때, 첫번째 경우와 같이 사용하면 속성이 존재하지만 false 로 나오기 때문에 in 연산자를 사용하는 것이 더안정적인 방법

// 객체에 존재하는 속성이지만 속성 값이 undefined 인 경우 사용하기 어려움
conosole.log(myCar['2owner'] !== undefined); // false
console.log('2owner' in myCar); // true





📖 References 📖

https://ko.javascript.info/object

 

객체

 

ko.javascript.info

https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Working_with_objects

 

객체로 작업하기 - JavaScript | MDN

JavaScript는 간단한 객체 기반 패러다임 위에 만들어졌습니다. 객체는 속성의 컬렉션이고, 속성은 이름('키')과 값 사이의 연결 관계입니다. 속성의 값이 함수인 경우에는 메서드라고 부릅니다. 브

developer.mozilla.org

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/in

 

in 연산자 - JavaScript | MDN

in 연산자는 명시된 속성이 명시된 객체에 존재하면 true를 반환합니다.

developer.mozilla.org

 

728x90
반응형

' > JavaScript' 카테고리의 다른 글

[JavaScript] 기초 - 데이터와 형태  (0) 2024.07.29
Promise 객체  (0) 2024.05.27
[JavaScript/자바스크립트] 모듈, pakage.json, pakage-lock.json  (0) 2024.05.18
JS 배열 Array  (0) 2024.01.05
JS Date 객체  (1) 2024.01.05