๋ณธ๋ฌธ์œผ๋กœ ๋ฐ”๋กœ๊ฐ€๊ธฐ

 

1. ๊ฐ์ฒด์˜ property์— ์ ‘๊ทผํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•

cosnt obj = {
	name: 'junha'
}

obj.name 
obj['name']
// 'junha'

 

2. object.key ๋ฐฉ๋ฒ•์˜ ๋ฌธ์ œ์ 

ํ•˜์ดํ”ˆ(-)์ด ๋“ค์–ด๊ฐ„ property์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค.

obj.a-b
// (obj.a) - b

obj['b-c']
// obj์˜ key 'a-b'์— ์ ‘๊ทผ

 

 

var a = {
	"a" :  1,
	"b-c": 2,
	"0d" : 3, // ์„ ์–ธ ์ž์ฒด๋Š” ๊ฐ€๋Šฅ
	"d0" : 4,
    2: 5
}


console.log(a.a)   // 1
console.log(a.b-c) // ReferenceError: c is not defined
console.log(a.0d)  // SyntaxError: Invalid or unexpected token
// ๋ณ€์ˆ˜๋Š” ์ˆซ์ž๊ฐ€ ๋จผ์ € ๋‚˜์˜ค๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. 

console.log(a.d0)   // 4
console.log(a.2)    // Uncaught SyntaxError: Unexpected number
console.log(a[2])   // 5
console.log(a['2']) // 5
console.log(Object.keys(a)[4]) // string

- 2์— ๋Œ€ํ•œ ์ ‘๊ทผ์€ a[‘2’]๋กœ๋Š” ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, a.2๋Š” ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

- ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ a[‘0d’]๋Š” ๊ฐ€๋Šฅํ•˜์ง€๋งŒ a.0d๋Š” ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. 

 

const a = {
	"a"    : 1,
	2      : 2,
	"b-c"  : 3, // -
	"— d"  : 4, // —
	" e "  : 5 // space
}

- ๋†€๋ž๊ฒŒ๋„ ๋”ฐ์˜ดํ‘œ๋กœ ์—ฎ์œผ๋ฉด ํ•˜์ดํ”ˆ,space ๋ฌธ์ž๋“ฑ์„ ํฌํ•จ ํ•  ์ˆ˜ ์žˆ๋‹ค.

- ๊ทธ๋Ÿผ ์ ‘๊ทผ ๊ฐ€๋Šฅํ• ๊นŒ? O_O ๋ชจ๋‘ ์ ‘๊ทผ๊ฐ€๋Šฅํ•˜๋‹ค!

- ์—ฌ์ „ํžˆ ๋ฌธ์ž์—ด๋กœ ๋˜์–ด์žˆ๊ณ , ์ด๋Š” .(dot)ํ‘œํ˜„์˜ ํ•œ๊ณ„๋ฅผ ๋„˜์–ด [] ํ‘œํ˜„์œผ๋กœ ๋ชจ๋‘ ์ ‘๊ทผ๊ฐ€๋Šฅํ•˜๋‹ค.  

-  object[key] ๋ฐฉ๋ฒ•์œผ๋กœ ๊ฐ์ฒด์— ์†์„ฑ๊ฐ’์ด ๋ฌธ์ž์—ด์ด๋ผ๋ฉด ์ „๋ถ€ ์ ‘๊ทผ๊ฐ€๋Šฅํ•˜๋‹ค.

 

4.  ๋ณ€์ˆ˜๋กœ key์— ์ ‘๊ทผํ•˜๊ณ  ์‹ถ์„ ๋•Œ

const obj = {
	name : 'junha',
	age : 20,
    key : '9999'
}

const key = ‘age’
obj.age 
obj["age"]
obj[key]
// 20

obj.key
// 9999

for (key in obj) {
	console.log(obj.key) 
    // '9999', '9999', '9999'
	
    console.log(obj[key])
    // 'junha', 20, '9999'
}
  • for๋ฌธ, mapํ•จ์ˆ˜๋Š” ๊ฐ์ฒด์— ์†์„ฑ ๊ฐœ์ˆ˜๋งŒํผ loop๋ฅผ ๋ˆ๋‹ค.
  • obj.key๋Š” obj["key"]์™€ ๊ฐ™์€ ์˜๋ฏธ๋‹ค.

 

5. ๊ฐ์ฒด์˜ ํ‚ค๋ฅผ ๋ณ€์ˆ˜๋กœ ํ• ๋‹นํ•˜๊ณ  ์‹ถ์„ ๋•Œ (ES6)

const key = 'tall'
const value = 180

const obj = {
  [key]: value
}

obj
// { tall: 180 }



๋ฐ˜์‘ํ˜•