JavaScript-객체 리터럴, 매서드(method), 객체간 비교

hannah·2023년 7월 23일
0

JavaScript

목록 보기
24/121

객체 리터럴

const name = '이사벨라';
const nationality = '이탈리아';
const year = 1996;
const month = 3;
const date = 25;
const gender = 'W';

위에서 선언한 변수들을 객체 리터럴로 묶으면

const aboutMe = {
	name : '이사벨라',
 	nationality : '이탈리아',
 	year : 1996,
	month : 3,
 	date : 25,
 	gender : 'W',
 }

배열과 다르게 객체 리터럴엔 각 속성들에 이름을 붙일 수 있음
name, nationality, year 등은 속성 이름이고
이사벨라, 이탈리아, 1996 등은 속성 값에 해당함

속성 값을 출력하는 두 가지 방법

const aboutMe = {
	name : '이사벨라',
 	nationality : '이탈리아',
 	year : 1996,
	month : 3,
 	date : 25,
 	gender : 'W',
 }
 
 console.log(aboutMe.name);		//온점 접근 방식
 console.log(aboutMe['name']);		//배열 접근 방식

배열 접근 방식: 속성 이름에 띄어쓰기나 온점이 있을 경우 이 방식만 사용해야 함
단, 자료형까지 다 표기를 해야함

객체 속성 수정하기

aboutMe.gender = 'F';
console.log(aboutMe.gender);		//F

객체 속성 추가하기

aboutMe.job = '개발자';
console.log(aboutMe.job);		//개발자

객체 속성 제거하기

delete aboutMe.job = '개발자';
console.log(aboutMe.job);		//undefined

매서드(method)

속성 값으로 자바스크립트의 모든 값을 넣을 수 있다. 문자열, 숫자, 불 값, null, undefined도 가능하다. 그리고 함수, 배열, 다른 객체까지도 넣을 수 있다.
객체의 속성 값으로 함수를 넣었을 때 이 속성을 매서드(method)라고 한다.

const debug = {
	log: function(value) {
    	console.log(value);
    },
};
debug.log('Hello, Method!');

객체 간의 비교

객체끼리는 비교하면 false가 나옴

{} === {}		//false
[] === []		//false

객체끼리 비교하기 위해서는 객체를 변수 안에 저장한 후에 변수를 비교해야 함

const a = {name:'이사벨라'};		//객체 리터럴
const array = [1,2,a];				//배열 리터럴
console.log(a === array[2]);		//true

문제
다음과 같이 객체 안에 객체가 있을 때, '이' 값에 접근하는 방법은?

const bella = {
	name:{
    	first:'사벨라',
        last:'이',
    },
    gender:'w',
}










정답

console.log(bella.name.last);

0개의 댓글