μμ± μ κ·Όμ / for in λ°λ³΅λ¬Έ / for of λ°λ³΅λ¬Έ / λ©μλ / λ°°μ΄κ³Ό ν¨μ / property value shorthand / in μ°μ°μ / κ°μ²΄ 볡μ νκΈ° - Object.assign()
μλ°μ€ν¬λ¦½νΈ κ°μ μκ° (object)
λλ¦Όμ½λ© μ νλΈ 'μλ°μ€ν¬λ¦½νΈ' κ°μ 7νΈ
λ
Έλ§λ μ½λ μ νλΈ 'λ°λλΌ μλ°μ€ν¬λ¦½νΈ' κ°μ 1-10(object)
β λ°°μ΄ μμ objectλ₯Ό, object μμ λ°°μ΄μ λ£μ μ μλ€
μ¬μ νμ΅ κ°μ΄λ STEP 2 Object
μ°λ¦¬κ° μ κ·Όν μ μλ λ³μ, μ¦ μμ±κ³Ό κ·Έ κ°μ μ§ν©μ²΄
object = { key : value, ... };
μμ νμ vs object(κ°μ²΄)
μμ νμ
: λ³μ νλλΉ νλμ κ°λ°μ λ΄μ§ λͺ»ν¨
ex) const person = 'sam'
object(κ°μ²΄)
: μ¬λ¬ κ°μ κ°μ λ΄μ μ μμ
ex) const person = {...}
κ°μ²΄ μμ± λ°©λ²
const obj = {};
const obj = new Object();
κ°μ²΄μ μ μ₯λ μμ± κ°μ μμ νκ±°λ κ°μ Έμ€κ³ μ ν λ μ¬μ©
μ’ λ₯
μ (.) νκΈ°λ² : κ°μ²΄ μ΄λ¦.μμ± μ΄λ¦
λκ΄νΈ([ ]) νκΈ°λ² : κ°μ²΄ μ΄λ¦['μμ± μ΄λ¦']
const niceMan = { name : 'thunder', age : 15, 'μ·¨λ―Έ' : 'baseball', 'μ£Όμ' : 'λνλ―Όκ΅' // 'κ°μ²΄ 리ν°λ΄ λ΄'μ μμ± μ΄λ¦μ 'μλ³μμ νμ©λμ§ μμ λ¬Έμ'κ° λ€μ΄κ° κ²½μ° // λ°λμ λ°μ΄ν('')λ₯Ό μ¨μ€μΌ νλ€ }; // κ°μ²΄μ μ μ₯λ μμ± κ° μμ νκΈ° niceMan.name = 'Muse'; niceMan['age'] = 20; niceMan.μ·¨λ―Έ = 'swimming'; niceMan['μ£Όμ'] = 'λ―Έκ΅'; // κ°μ²΄μ μ μ₯λ μμ± κ° κ°μ Έμ€κΈ° console.log(niceMan['name']); // Muse console.log(niceMan.age); // 20 console.log(niceMan['μ·¨λ―Έ']); // swimming console.log(niceMan.μ£Όμ); // λ―Έκ΅
computed properties
β
μλ μ΄ν΄λ₯Ό μν μμμΌ λΏ, μ€μ μ½λ©ν λλ λ³΄ν΅ μ νκΈ°λ²μ μ¬μ©νλ€.
λκ΄νΈ νκΈ°λ²
μ μ½λ© λΉμμλ μ΄λ€ keyκ° νμν μ§ μ ννκ² λͺ¨λ₯΄κ³ , keyκ° runtimeμ κ²°μ λ λ μ¬μ©νλ€.
μ΄λ₯Ό ν΅ν΄ μ¬μ©μκ° μ
λ ₯νλ λ΄μ© λ± μ€μκ°μΌλ‘ μνλ key(μμ±)μ μ΄λ¦
μ λ°μμ¬ μ μλ€. λμ μΌλ‘ keyμ κ΄λ ¨λ valueλ₯Ό λ°μμμΌ ν λ μ μ©νκ² μ°μΈλ€.
const syong = { name = 'leesyong', age = 10 } // objectμ keyλ₯Ό λ°μμ κ·Έ keyμ μμνλ valueλ₯Ό μΆλ ₯νλ ν¨μ function printValue(obj, key) { console.log(obj[key]); // obj.key λΌκ³ μ°λ©΄ undefined κ°μ΄ λ¬λ€ } printValue(syong, 'name'); // leesyong printValue(syong, 'age'); // 10 // keyλ νμ stringμ΄μ΄μΌ νλ€ β μ¦, λ°μ΄ν('')λ₯Ό λΆμ¬ μ¨μΌ νλ€ β
delete
κ°μ²΄ μ΄λ¦. μμ± μ΄λ¦;
delete
κ°μ²΄ μ΄λ¦['μμ± μ΄λ¦'];
const vanilla = { taste : 'good', color : 'green', from : 'Mexico' }; console.log(vanilla); // {taste : 'good', color: 'green', from: 'Mexico'} delete vanilla.taste; delete vanilla['color']; console.log(vanilla); // {from : 'Mexico'}
λ°λ³΅ν μ μλ κ°μ²΄
μ λͺ¨λ μμλ₯Ό νλμ© μΆμΆνμ¬ λ³μμ λ΄μ
λ°λ³΅λ¬Έμ μννλ λ¬Έλ²
μλ°μ€ν¬λ¦½νΈ for λ¬Έ, for in λ¬Έ, for of λ¬Έ & for inμ for of λΉκ΅ - Iteration μ°Έκ³
ν΄λΉ κ°μ²΄μ λͺ¨λ μ΄κ±°ν μ μλ μμ±
μ λν΄ λ°λ³΅νλ€
λ°°μ΄μ κ²½μ°, λͺ¨λ μμμ indexλ₯Ό μΆλ ₯νλ€
μ¬μ© λ°©λ²
for (λ³μ in κ°μ²΄) { // λ°λ³΅μ μΌλ‘ μ€ννκ³ μ νλ μ€νλ¬Έ; }
μμ λΆμ
// sampleμ΄λ κ°μ²΄μ μμ±κ³Ό μμ±κ° const sample = { name : syong, age : 13, gender : F } // 루νλ§λ€ κ°μ²΄μ μ΄κ±°ν μ μλ μμ±λ€μ [μ΄λ¦]μ μ§μ λ λ³μμ λμ for (let prop in sample) { console.log(prop); // name age gender console.log(sample[prop]); // syong 13 F β λκ΄νΈλ₯Ό μ¬μ©ν΄ κ°μ²΄μ μμ± κ°μ μ κ·Ό κ°λ₯ }
μ΅μ’ μΆλ ₯ κ° name syong age 13 gender F
λ°λ³΅ν μ μλ κ°μ²΄
(Array, Map, Set, String, TypedArray, arguments λ±)μ λν΄ λ°λ³΅νλ€
λ°°μ΄μ κ²½μ°, indexλ§νΌ λ°λ³΅νμ¬ μμλ₯Ό λ³μμ ν λΉνλ€
μ¬μ© λ°©λ²
for (λ³μ of κ°μ²΄) { // λ°λ³΅μ μΌλ‘ μ€ννκ³ μ νλ μ€νλ¬Έ; }
μμ λΆμ 1
// sampleμ΄λ κ°μ²΄μ μμ±κ³Ό μμ±κ° const sample = { name : syong, age : 13, gender : F } for (let state of sample) { console.log(state); } // 'sample is not iterable'μ΄λΌλ errorκ° λ¬λ€
μμ λΆμ 2 (λλ¨Έμ§ λ§€κ°λ³μ νμ΅ λ ΈνΈ μ°Έκ³ )
// 루νλ§λ€ λ°λ³΅ν μ μλ κ°μ²΄μ [κ°]μ μ§μ λ λ³μμ λμ function printALL(...args) { for (const arg of args) { console.log(arg); } } printALL('my', 'name', 'is', 'syong');
μ΅μ’ μΆλ ₯ κ° my name is syong
μμ λΆμ 3 (λλ¦Όμ½λ© μ νλΈ 'μλ°μ€ν¬λ¦½νΈ' κ°μ 7νΈ 14λΆ~ μ°Έκ³ )
const array = [1, 2, 4, 5]; for (let i = 0; i < array.length; i++) { console.log(array[i]); }
μ μλλ μΆλ ₯λλ κ°μ΄ κ°λ€
const array = [1, 2, 4, 5]; for (let value of array) { console.log(value); }
κ°μ²΄μ νλ‘νΌν° κ°
μΌλ‘ μ§μ λλ ν¨μ
νκΈ°λ² 1
const study = { book: function () { return 'I love you'; } }; console.log(study.book()); // I love you
νκΈ°λ² 2
const play = { book () { return 'I love you'; } }; console.log(play.book()); // I love you
μ΄λ
book() ν¨μ
λ λ©μλ(method)μ΄λ€
μλ°μ€ν¬λ¦½νΈμμλ λ°°μ΄κ³Ό ν¨μλ κ°μ²΄μ λ²μ£Όμ ν¬ν¨λλ€
λ°°μ΄κ³Ό ν¨μμλ μΌλ° κ°μ²΄μ λ§μ°¬κ°μ§λ‘
μνλ€λ©΄ μμ±μ μΆκ°ν μ μμ§λ§, μ€μ λ‘ κ·Έλ° κ²½μ°λ κ±°μ μλ€
const arr = [1, 2, 3]; console.log(arr[2]); // 3 console.log(arr.title); // undefined arr.title = 'arrangement'; // μμ± μΆκ° console.log(arr.title) // arrangement
function adding (a, b) { return a + b; } console.log(adding(2, 3)); console.log(adding.title); //undefined adding.title = 'func'; // μμ± μΆκ° console.log(adding.title); // func
key(μμ±)λ₯Ό μλ΅
νκ³ μΈ μ μλ€const personA = {name : 'sam', age: 14 }; const personB = {name : 'daniel', age: 13 }; const personC = {name : 'erick', age: 18}; // λ€λ₯Έ κ³μ°μ νμ§ μκ³ objectλ₯Ό λ§λ€μ΄μ£Όλ ν¨μ β function makePerson (name, age) { return { name : name, // name, λΌκ³ μ€μ¬ μΈ μ μλ€ age : age // age λΌκ³ μ€μ¬ μΈ μ μλ€ } } const personD = makePerson ('tom', 16); console.log(personD); // {name : 'tom', age : 16}
cf. μμ±μ ν¨μ β
function Person (name, age) { // this = {}; κ° μλ΅λ¨ this.name = name; this.age = age; // return this; κ° μλ΅λ¨ } const personD = new Person ('tom', 16); console.log(personD); // {name : 'tom', age : 16}
ν΄λΉ κ°μ²΄ μμ ν΄λΉ keyκ° μλμ§
νμΈν΄μ€λ€
console.log('name' in syong); // true
κ³ μ μ μΈ λ°©λ²
const user1 = {name : 'lee', age : 24}; const user2 = {}; for (key in user1) { user2[key] = user1[key]; } console.log(user2); // {name : 'lee', age : 24}
νλ μ΄μμ μλ³Έ κ°μ²΄λ€(source)λ‘λΆν° λͺ¨λ μ΄κ±° κ°λ₯ν μμ±λ€
μ λμ κ°μ²΄(target)λ‘ λ³΅μ¬ν΄μ€λ€
const λμ κ°μ²΄ μ΄λ¦ = {};
Object.assign(λμ κ°μ²΄ μ΄λ¦, μλ³Έ κ°μ²΄ μ΄λ¦);
π‘ μ¬κΈ°μ μ κΉ!
- μλ°μ€ν¬λ¦½νΈμλ κΈ°λ³ΈμΌλ‘ νμ¬λμ΄ μλ objectλ€μ΄ μλ€. μ΄λ₯Ό
νμ€ λ΄μ₯ κ°μ²΄
λΌκ³ νλ€.Object μμ±μ
λ νμ€ λ΄μ₯ κ°μ²΄ μ€ νλμ΄λ€. (μ΄λ μμ±μλ κ°μ²΄λ₯Ό λ§λλ μν μ νλ ν¨μλ₯Ό μλ―Ένλ€.)- κ·Έλ°λ°
μλ°μ€ν¬λ¦½νΈμ λͺ¨λ object(κ°μ²΄)
λ Object μμ±μλ₯Ό μμνλ€.- λ°λΌμ μ΄λ€ κ°μ²΄λ 볡μ νκ³ μ ν λ
Object μμ±μμ λ©μλ
λ₯Ό μ΄μ©ν μ μλ€.
β μλ³Έ κ°μ²΄κ° 1κ°μΈ κ²½μ°
const user1 = {name : lee, age : 24}; // μ΄ λΆλΆμ const user3 = {}; Object.assign(user3, user1); console.log(user3); // {name : lee, age : 24}
// μ΄λ κ² μ¨λ λλ€ const user3 = Object.assign({}, user1);
β μλ³Έ κ°μ²΄κ° 2κ° μ΄μμΈ κ²½μ°
const fruit1 = {color: 'red'}; const fruit2 = {color: 'blue', size: 'big'}; const fruit3 = Object.assign({}, fruit1, fruit2); console.log(fruit3); // {color: 'blue', size: 'big'}
μ¬λ¬ κ°μ μλ³Έ κ°μ²΄λ€ κ°μ΄λ° μμ±μ κ°μΌλ κ°μ΄ λ€λ₯Έ κ²½μ°, Object.assign() 맀κ°λ³μλ€ μ€
λ€μ λμ€λ
μλ³Έ κ°μ²΄μ μμ± κ°μ΄ μ°μ νλ€.
λλ¦Όμ½λ© μ νλΈ 'μλ°μ€ν¬λ¦½νΈ' κ°μ 8νΈ (λ°°μ΄)
μ¬μ νμ΅ κ°μ΄λ STEP2 Arrays, Quiz