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 |