κΈμ μμ±νκΈ°μ μμ μ΄ κ²μκΈμ μ§μμ μ νλΈ λλ¦Όμ½λ© by μ리λμ λμμμ΄ μΆμ²μμ μλ €λ립λλ€.
https://www.youtube.com/watch?v=1Lbr29tzAA8&list=PLv2d7VI9OotTVOL4QmPfvJWPJvkmv6h-2&index=7
Object μμ±νλ λ°©λ²
const obj1 = {name: 'song' , age: 25};
μ΄λ° μμΌλ‘ λ§λ€ μλ μλ€
μ΄ λ°©λ²μ 'object literal' μ΄λΌκ³ νλ©°
const obj2 = new Object();
ν΄λμ€λ₯Ό μ΄μ©νμ¬ new ν€μλλ‘ μμ±νλ λ°©λ²λ μλ€
μ΄ λ°©λ²μ 'object constructor' μ΄λΌκ³ νλ€.
β
μλ°μ€ν¬λ¦½νΈμμλ ν΄λμ€κ° μμ΄λ κ΄νΈ {} λ₯Ό μ¬μ©νμ¬ μ€λΈμ νΈλ₯Ό μμ±ν μ μλ€.
β
β
μλ°μ€ν¬λ¦½νΈμμλ μ΄λ―Έ μλμ κ°μ΄ nameκ³Ό ageλ₯Ό μ μνμμλ λΆκ΅¬νκ³ λ λ€λ₯Έ νλ‘νΌν°λ₯Ό μμ±ν μ μλ€
const song = {name: 'song' , age: 25};
song.hasjob = true;
μ΄λ κ² λμ μΌλ‘ μμ±νκ² λλ©΄ μ μ§ λ³΄μκ° νλ€λ€
κ·Έλ¬λ―λ‘ κ°λ₯νλ©΄ μ΄κ²μ νΌν΄μ μ½λ©ν κ² !
μΆκ°λ‘ νλ‘νΌν°μ μμ λ κ°λ₯νλ€
delete song.hasjob;
μ§κ³ λμ΄κ°μΌ ν λΆλΆμ
Objectλ keyμ valueμ μ§ν©μ²΄μ΄λ€
β
μ¬κΈ°μ keyλ objectλ‘ μ κ·Όν μ μλ λ³μ, μ¦ νλ‘νΌν°μ
κ·Έ νλ‘νΌν°κ° κ°μ§κ³ μλ κ°μΈ valueλ‘ μ΄λ£¨μ΄μ Έ μλ€
Object ['key'] / Computed properties
μ§κΈκΉμ§ μ€λΈμ νΈ μμ νλ‘νΌν°μ μ κ·Όνλ λ°©λ²μ
console.log(song.name);
μμ κ°μ΄ . μΌλ‘ μ κ·Όνλ λ°©λ²μ΄ μμλλ°
λ λ€λ₯Έ λ°©λ²μ΄ μ‘΄μ¬νλ€
console.log(song['name']);
μ€λΈμ νΈ μμ name μ΄λΌλ λ³μμ μ΄λ¦μ string ννλ‘ μ κ·Όμ΄ κ°λ₯νλ€
( κΌ 'name' κ³Όκ°μ΄ λ°μ΄ν μ¬μ΄μ μ‘΄μ¬ν΄μΌ νλ€ )
β
μ΄λ κ² λ κ°μ§λ‘ μ κ·Όμ΄ κ°λ₯νλ€ !
β
μλμ κ°μ λ°©λ²μ Computed properties λΌκ³ νλ€
β
μ΄ λ°©λ²μ μ°λ κ²½μ°λ
function printValue(obj, key) {
console.log(obj.key);
}
printValue(song,'name');
μμ κ°μ΄ obj.key λΌλ κ²μ song μ€λΈμ νΈμ keyλΌλ κ°μ΄ μλκ³ λ¬Όμ κ²μ΄λ λ€λ¦μλ€ κ·Έλμ κ²°κ³Όκ°μ
β
undefined
β
μ¬κΈ°μ song μ€λΈμ νΈμ keyλ₯Ό λΆλ μ λ nameμ΄ νΈμΆνλ λ°©λ²μ
Computed properties λ₯Ό μ¬μ©νλ©΄ λλ€
function printValue(obj, key) {
console.log(obj[key]);
}
printValue(song,'name');
μμ κ°μ΄ [] μμ keyλ₯Ό νΈμΆνλ©΄ song μ€λΈμ νΈ μμ nameμ νΈμΆνκ² λμ΄μ μ μμ μΈ κ°μΈ songμ΄ μΆλ ₯λλ€
β
λμ μΌλ‘ ν€μ κ΄λ ¨λ value λ₯Ό λ°μμμΌ ν λ μ μ©νκ² μΈ μ μλ€.
Property value shorthand
const person1 = { name: 'bob', age: 2};
const person2 = { name: 'steve', age: 3};
const person3 = { name: 'dave', age: 4};
μμ κ°μ΄ personμ΄λΌλ μ€λΈμ νΈλ₯Ό 3κ°μ§ λ§λ€μ΄ λμλ€
μ¬κΈ°μ 4λ²μ§Έ personμ λ§λ€λ €κ³ ν λ λ μμ κ°μ΄ λ²κ±°λ‘κ² μ΄λ¦κ³Ό λμ΄λ₯Ό μΌμΌμ΄ μμ±ν΄μΌ νλ€
β
μ΄λ₯Ό λ νΈνκ² νκΈ° μνμ¬ ν¨μλ₯Ό μ¬μ©νλ€
function makePerson(name, age) {
return{
name: name,
age : age,
};
}
const person4 = makePerson('song', 25);
μμ κ°μ΄ makePersonμ΄λΌλ ν¨μλ₯Ό μμ±νκ³ λ§€κ°λ³μλ‘ name κ³Ό ageλ₯Ό λ°μ
νλ‘νΌν°λ‘μ μ€λΈμ νΈμ ν¬ν¨λκ² νλ€
β
μ¬κΈ°μ μλ°μ€ν¬λ¦½νΈμμλ Property value shorthand λΌλ κΈ°λ₯μ΄ μμ΄μ μλμ κ°μ΄ μ¬μ©νλ€
function makePerson(name, age) {
return{
name,
age,
};
}
keyμ valueμ μ΄λ¦μ΄ λμΌνλ€λ©΄ name : name κ³Όκ°μ΄ ν λΉμ μλ΅ν μ μλ€
β
μμ κ°μ΄ ν΄μ€λ€λ©΄ μ μμ μΌλ‘ μ€λΈμ νΈκ° μμ±μ΄ λλ€ !
β
Constructor function
μμμ μ΄ν΄λ³Έ makePerson μ΄λΌλ ν¨μλ ν΄λμ€μ λΉμ·ν κ°λ μ΄λΌκ³ 보면 λλ€
β
κ·Έλμ ν΄λμ€κ° μ‘΄μ¬νμ§ μλ μλ°μ€ν¬λ¦½νΈμμλ μμμ μμλ³Έ λ°©μμΌλ‘ μ€λΈμ νΈλ₯Ό μμ±νκ³€ νλ€
β
μ΄μ μ λλ‘ μ΄ν΄λ³΄μ
function Person(name, age) {
this.name = name;
this.age = age;
}
μμ κ°μ΄ μ€λΈμ νΈλ₯Ό μμ±νλ ν¨μμ κ²½μ° μ΄λ¦μ΄ λλ¬Έμλ‘ μμνλ€ 'Person'
β
κ·Έλ¦¬κ³ return μ μ¬μ©νμ§ μκ³ this λ₯Ό μ¬μ©νμ¬ valueλ₯Ό keyμ ν λΉνλ€
β
κ²°κ΅ thisμ μλ‘μ΄ νλ‘νΌν°λ₯Ό λ£κ³ this λ₯Ό return ν΄μ£Όλ ν¨μμ΄λ€
β
μ΄λ₯Ό Constructor function μ΄λΌκ³ νλ€
in operator
in operatorλ ν΄λΉνλ μ€λΈμ νΈ μμ keyκ° μλμ§ νμΈνλ κ²μ΄λ€
console.log('name' in song);
nameμ΄λΌλ keyκ° songμ΄λΌλ μ€λΈμ νΈ μμ μ‘΄μ¬νλμ§ νμΈνλ κ²
κ²°κ³Όλ true λλ falseκ° μΆλ ₯λλ€
β
for.. in vs for.. of
for .. in μ νλ‘μ νΈλ₯Ό ν λ μμ£Ό μ μ©νκ² μ°μΈλ€
for(key in song) {
console.log(key);
}
μμ κ°μ΄ for .. in μ μ¬μ©νλ©΄ for λ¬Έμμμ songμ μλ κ°μ΄ keyμ λ°°μ΄λ‘ ν λΉλμ΄ μΆλ ₯νλ©΄
song μ€λΈμ νΈμ μ‘΄μ¬νλ λͺ¨λ keyκ° μΆλ ₯λλ€
β
λͺ¨λ ν€λ€μ λ°μμμ μΈ λ for .. in μ μ¬μ©νλ©΄ μ’λ€
β
λ€μμ for .. of
const array = [1, 2, 3, 4, 5];
for( let i = 0; i < array.length; i++) {
console.log(array[i]);
}
λ³΄ν΅ μμ κ°μ΄ array λΌλ λ°°μ΄μ κ°μ for λ¬Έμ μ΄μ©νμ¬ arrayμ κ°μ μΆλ ₯νμ§λ§
β
μ΄λ κ² μ¬μ©νλ©΄ μ½λκ° κΈΈμ΄μ Έ μ’μ§ μλ€
β
for(value of array) {
console.log(value);
}
μμ κ°μ΄ for .. ofλ₯Ό μ¬μ©νκ² λλ©΄ arrayμ μλ κ°μ΄ valueμ ν λΉλλ©΄μ μμ°¨μ μΌλ‘ μΆλ ₯μ΄ λλ€
β
κΈ°λ₯μ κ°μ§λ§ λμ± νΈλ¦¬ν κΈ°λ₯μ΄λ€
β
cloning
cloningμ λν΄ μμλ₯Ό ν΅ν΄ μμ보μ
const user = { name: 'song', age: '25' };
const user2 = user;
μμ κ°μ΄ userλΌλ μ€λΈμ νΈλ₯Ό μμ±νκ³ user2μ user μ€λΈμ νΈλ₯Ό λ£μ΄μ£Όμλ€
β
μ΄ κ²½μ°μλ user2κ° userκ° κ°λ¦¬ν€λ κ°μ λμΌνκ² κ°λ¦¬ν¨λ€λ λ§μ΄ λλ€
β
κ·ΈλΌ user2μ valueλ₯Ό λ€λ₯Έ κ°μΌλ‘ λ³κ²½νλ€λ©΄ μ΄λ»κ² λλμ§ μμ보μ
user2.name = 'coder';
console.log(user);
μμ κ°μ΄ user2μ name μ coderλ‘ λ³κ²½ν΄ μ£Όκ³
user κ°μ²΄λ₯Ό μΆλ ₯νλ©΄
{name: "coder", age: "25"}
μμ κ°μ΄ nameμ΄ coderλ‘ λ°λμ΄ μλ κ²μ νμΈν μ μλ€
'JavaScript' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
JavaScript (ES6) - Array APIs μ΄μ 리 - ( μ μ©ν 10κ°μ§ λ°°μ΄ ν¨μ ) (0) | 2021.05.23 |
---|---|
JavaScript (ES6) - Prototype (0) | 2021.05.20 |
JavaScript (ES6) - Array κ°λ κ³Ό APIs (0) | 2021.05.01 |
JavaScript (ES6) - class μ object κ°μ²΄μ§ν₯νλ‘κ·Έλλ° (0) | 2021.05.01 |
JavaScript (ES6) - ν¨μμ μ μΈκ³Ό νν ( Arrow Function ) (0) | 2021.04.27 |