λ©ννλ‘κ·Έλλ°μ κ°λ¨νκ² λ‘λ΄μ΄ λ€λ₯Έ λ‘λ΄μ λ§λλκ²κ³Ό κ°μ
μΌλ°μ μΈ νλ‘κ·Έλλ°μ μ¬λμ΄ λ‘λ΄μκ² λ‘λ΄μ λ§λ€λΌκ³ μ§μνκ²λ¨
νμ§λ§ λ©ννλ‘κ·Έλλ°μμ λ‘λ΄μ΄ μλ‘μ΄ λͺ λ Ήμ λ§λ€κ±°λ λ€λ₯Έ λ‘λ΄μ λ§λ€μ΄λ΄κ²λ¨
κ²°κ΅ λ©ννλ‘κ·Έλλ°μ μ½λκ° μ½λλ₯Ό λ§λλκ±Έ μλ―Έν¨
/**
* μΌλ°μ μΈ νλ‘κ·Έλλ°
*/
const numbers = [1, 2, 3];
const doubled = numbers.map((num) => num * 2);
console.log(doubled); // [2, 4, 6]
/**
* λ©ννλ‘κ·Έλλ°
*/
const user: { name: string; age: number } = { name: "λμ°", age: 27 };
for (const key in user) {
console.log(`${key}μ νμ
μ ${typeof user[key as keyof typeof user]}μ
λλ€.`);
}
// nameμ νμ
μ stringμ
λλ€.
// ageμ νμ
μ numberμ
λλ€.
νλ‘κ·Έλ¨μ΄ μ€ν μ€μ μ΄ λ°μ΄ν°κ° λμ§? λ¬΄μ¨ νμ μ΄μ§? μ²λΌ μ€μ€λ‘ μμλ΄λ κ²μ λ»ν¨
λ§μΉ μ¬λμ΄ κ±°μΈμ 보λκ²κ³Ό μ μ¬νλ° λμΌνκ² μ½λκ° μκΈ° μμ μ ꡬ쑰λ₯Ό λ€μ¬λ€λ³Ό μ μμ
/**
* νμ
νμΈνκΈ°
*/
console.log(typeof "IMKDW-DEV-BLOG"); // string
console.log(typeof 123); // number
console.log(typeof true);
/**
* μ΄λ€ ν΄λμ€μΈμ§ νμΈ
*/
class User {}
class Admin {}
const user = new User();
console.log(user instanceof User); // true
console.log(user instanceof Admin); // false
νλ‘κ·Έλ¨μ΄ λ°νμμ μκΈ° μμ μ ꡬ쑰λ λμμ λ°κΎΈλκ±Έ μλ―Έν¨
λ§μΉ λ κ³ λ₯Ό 쑰립νλ©΄μ λμμ λΈλ‘μ λ°κΏ λΌμ°λ κ² μ²λΌ μμ±λ νμ λ°κΎΈλκ² μλ λμ€μ μ€μ€λ‘ λ³νν¨
/**
* κ°μ²΄ λ΄μ© μμ νκΈ°
*/
const user: { name: string; age?: number } = { name: "λμ°", age: 27 };
console.log(user); // { name: 'λμ°', age: 27 }
user.name = "μ°λ";
console.log(user); // { name: 'μ°λ', age: 27 }
delete user.age;
console.log(user); // { name: 'μ°λ' }
/**
* ν΄λμ€μ λμ μμ νκΈ°
*/
class Animal {
speak() {
return "...";
}
}
const dog = new Animal();
console.log(dog.speak()); // ...
Animal.prototype.speak = () => {
return "μμ";
};
console.log(dog.speak()); // μμ
μΈμ΄μ κΈ°λ³Έ λμμ κ°λ‘μ±μ λ΄κ° μνλλλ‘ λ³κ²½μ΄ κ°λ₯ν¨
νλ°°λ₯Ό 보λ΄λ©΄ 보λ΄λ μ¬λ -> λ°λ μ¬λμΌλ‘ κ°λ νλ°°λ₯Ό λ΄κ° μ΄μ΄λ³΄κ³ μμ λ΄μ©λ¬Όμ λ°κΎΈκ±°λ λ± νλμ΄ κ°λ₯ν¨
μλ°μ€ν¬λ¦½νΈμ κ²½μ° μ΄λ° λ‘μ§μ Proxyλ₯Ό ν΅ν΄μ ꡬννκ²λ¨
type User = { name: string; age: number };
const user: User = { name: "λμ°", age: 27 };
const proxyUser = new Proxy(user, {
get(target: User, prop: keyof User) {
console.log(`${prop}μ μ κ·Όμ μλμ€μ`);
return target[prop];
},
set(target: User, prop: keyof User, value: User[keyof User]) {
if (prop === "age" && typeof value === "number" && value < 0) {
throw new Error("λμ΄λ 0λ³΄λ€ μμ μ μμ΅λλ€.");
}
(target[prop] as User[keyof User]) = value;
return true;
},
});
// nameμ μ κ·Όμ μλμ€μ
// λμ°
console.log(proxyUser.name);
proxyUser.age = 30;
console.log(proxyUser.age); // 30
// Error: λμ΄λ 0λ³΄λ€ μμ μ μμ΅λλ€.
proxyUser.age = -1;Please log in to write a comment
No comments yet.
Be the first to comment!