const info = {
name : '김개발'
}
const verb = 'developes'
const project = 'facebook'
// 1. 변수가 가지는 값에 따라 키와 값이 달라진다.
info[verb] = project
// 2. 키와 값이 항상 정해져 있다.
info.developes = 'facebook'
const obj = {
name: 'melon',
weight: 4350,
price: 16500,
isFresh: true
}
Object.keys(obj) // ['name', 'weight', 'price', 'isFresh']
const keys = Object.keys(obj) // ['name', 'weight', 'price', 'isFresh']
for (let i = 0; i < keys.length; i++) {
const key = keys[i] // 각각의 키
const value = obj[key] // 각각의 키에 해당하는 각각의 값
console.log(value)
}
const values = Object.values(obj)
// values === ['melon', 4350, 16500, true]
const entries = Object.entries(obj)
/*
entries === [
['name', 'melon'],
['weight', 4350],
['price', 16500],
['isFresh', true]
]
*/
반복문인 for 문과 같은 종류의 문법이지만 객체와 배열을 위해 ES6 에서 추가된 문법
객체 순환과 배열 순환 모두 가능하다.
1) i를 0으로 초기화하고 2) 배열의 길이와 비교하고 3) i를 1씩 증가시킨다. 이는 자바스크립트 엔진 내부에서 자동으로 결정된다.
배열에서 for... in 문 사용
// for 문
const arr = ['coconut', 'banana', 'pepper', 'coriander']
for (let i = 0; i < arr.length; i ++) {
console.log(i)
console.log(arr[i])
}
// for... in 문
for (let i in arr) {
console.log(i)
console.log(arr[i])
}
const obj = {
name: 'melon',
weight: 4350,
price: 16500,
isFresh: true
}
for (let key in obj) {
const value = obj[key]
console.log(key)
console.log(value)
}