TIL (2022.1.4) - [JS] 객체

박세진·2022년 1월 4일
0

객체(Object)

  • 객체의 데이터는 property라고 부르고, property는 key : value 형태이다.
let myObject = {
	key : value
};

let myself = {
	name: 'Sejin Park',
	location: {
		country: 'South Korea',
		city: 'Seoul'},
	age: 28,
	cats: ['냥냥', '냥이']
};
// location이라는 key의 value는 객체!
// cats라는 key의 value는 배열
  • key를 이용해서 접근할 수 있다.

  • js에 key는 string이다. key를 작성할 때 따옴표 없이 쓸 수 있지만, 접근할 때는 따옴표를 써야 된다.

Property accessors

Dot notation

  • 숫자로 시작하는 key에는 접근할 수 없다.
  • 띄어쓰기가 포함된 key에는 접근할 수 없다.
let myObject = {
	1: 'Hello',
  	2: 'World',
  	'my self': 'Nice to meet you',
  	animal: 'pig'
};

console.log(myObject.1); // SyntaxError
console.log(myObject.'my self'); // SyntaxError
console.log(myObject.animal); // 'pig'
  • 변수를 포함할 수 없다.
let myself = {
	name: 'Sejin Park',
	location: {
		country: 'South Korea',
		city: 'Seoul'},
	age: 28,
	cats: ['냥냥', '냥이']
};

let myCat = 'cats'

console.log(myself.myCat); // undefined
// 존재하지 않는 key에 접근하려고 할 때 undefined가 나온다.

// 만약 myself 객체에 myCat이라는 Key를 추가했을 경우?

let myself = {
	name: 'Sejin Park',
	location: {
		country: 'South Korea',
		city: 'Seoul'},
	age: 28,
	cats: ['냥냥', '냥이'],
	myCat: '냐옹이다~'
};

let myCat = 'cats'

console.log(myself.myCat); // '냐옹이다~'

Bracket notation

let myObject = {
	1: 'Hello',
  	2: 'World',
  	'my self': 'Nice to meet you',
  	animal: 'pig'
};

console.log(myObject[1]); // 'Hello'
console.log(myObject[2]); // 'World'
console.log(myObject['my self']); // 'Nice to meet you'
// Dot notation에서는 SyntaxError였음.
// Bracket notation에서는 숫자, 공백 가능
let myself = {
	name: 'Sejin Park',
	location: {
		country: 'South Korea',
		city: 'Seoul'},
	age: 28,
	cats: ['냥냥', '냥이']
};

let myCat = 'cats'

console.log(myself[myCat]); // ['냥냥', '냥이']

// 만약 myself 객체에 myCat이라는 key를 추가했을 경우?

let myself = {
	name: 'Sejin Park',
	location: {
		country: 'South Korea',
		city: 'Seoul'},
	age: 28,
	cats: ['냥냥', '냥이'],
	myCat: '냐옹이다~'
};

let myCat = 'cats'

console.log(myself[myCat]); // ['냥냥', '냥이']
// Dot notation으로 할 경우에는 myCat: '냐옹이다~'가 나오지만, Bracket notation은 변수를 사용할 수 있기 때문에 변수를 참조한다.

profile
경험한 것을 기록

0개의 댓글