νμ
μ€ν¬λ¦½νΈκ° κ²°κ΅ νμ
μ μν μΈμ΄μ΄κΈ° λλ¬Έμ, λ³μλ₯Ό μ μΈν λλ§λ€ νμ
μ λͺ
μν΄μΌ νλ€κ³ μκ°ν μ μλ€. κ·Έλ¬λ νμ
μ€ν¬λ¦½νΈμ λ§μ νμ
ꡬ문μ μ¬μ€ λΆνμνλ€. μ΄λ κ² μ무 μκ°μμ΄ λͺ
μνλ νμ
λ€μ΄ μλ€. νμμ μ½λ. νμ
μΆλ‘ μ΄ λλ€λ©΄ λͺ
μμ νμ
ꡬ문μ νμνμ§ μλ€. μ€νλ € μ½λκ° κΈΈμ΄μ§κ³ κ°λ
μ±μ΄ μμ’μμ§ μ μκΈ° λλ¬Έμ. νμ§λ§ νμ
μ΄ μΆλ‘ λ μ μμμλ νμ
μ λͺ
μνλ κ²μ΄ λ μ’μ λͺκ°μ§ μν©λ€μ΄ μλ€. λ μ νν μμΉμ μ€λ₯λ₯Ό νμνκΈ° μν¨μ΄λ€. κ°μ²΄ 리ν°λ΄μ μ μν λ ν¨μμ λ°νκ°μ λͺ
μν λ νμ
λνκΈ° let μΌλ‘ μ μΈνλ κ²½μ°. κ°μ΄ μ¬ν λΉλ κ°λ₯μ±μ΄ μλ€. λ°λΌμ μ²μ μ΄κΈ°νν κ°μ κ°μ§κ³ ν λΉ κ°λ₯ν κ°λ€μ μ§ν©μ μ μΆν΄μΌ ν¨. μ΄λμ λ κ°λ₯μ±μ μ΄μ΄μ£ΌκΈ° μν΄μ ν..
π§π» 짧μνΈν‘/JS·TS
μ±
μ μ΄μ©ν μ€ν°λλ₯Ό νλ©΄μ νμμ μ°μ§ μλ (κ²½νμ΄ μλ μ±
λ΄μ©μ μ 리νλ) κΈμ μ°λ©΄μ λ§μ κ³ λ―Όμ νκ² λλ€. μ΄λ»κ² ν΄μΌ μλ²½ν μ΄ν΄νκ³ , μ 리νκ³ , κΈ°λ‘ν μ μμκΉ. μ±
μ μμ κ·Έλλ‘ μ°μ§ μκ³ λ΄κ° μ΄ν΄ν νλ¦λλ‘ μ¬κ΅¬μ±ν΄μ κΈμ μ°λλ‘ λ
Έλ ₯ν΄λ³΄λ €κ³ νλ€. ν¨μ¨μ μΈ λ°©λ²μΈμ§λ λͺ¨λ₯΄κ² μ§λ§. μ§λμ£Όμ 곡λΆνλ ꡬ쑰μ νμ΄νμ κ΄μ μμ 보면 μλμ μ½λλ μ€λ₯κ° λ°μνμ§ μλλ€. interface Room { numDoors: number; ceilingHeightFt: number; } const obj = { numDoors: 1, ceilingHeightFt: 10; elephant: 'present', } const r: Room = obj; μΆλ‘ λ objμ νμ
μ Roomνμ
μ λΆλΆ ..
νμ
μ μ°λλ°μ μ€λ ₯μ νΈμ°¨κ° ν¬κ² λνλλ€. μ§λ λ₯μ€ν°μ¦ νλ νκΈ°μ μ μλ λ¬Έμ₯μ΄λ€. μ΄λ ΅κ² λ§ νμ
μ μ΄λ¦¬μ 리 μ°κ³ μ΄λ°λ¬Έμ κ° μλλ€. μ€λ«λμ λλλλ€ λ°κ²¬ν λ°©λ²μ΄ μκ³ λ³΄λ©΄ κ΅μ₯ν κΈ°λ³Έμ μΈ νμ
λ¬Έλ²μ΄μλ κ²½μ°κ° κ½€ μμλ€. μ΄λ κ² μΌλ λ²λ κ°λ°ν΄μ¨ νκ·μ§μ μν νμ
μ€ν¬λ¦½νΈ λΏμκΈ° μ€ν°λ. νμ
μ΄ν΄νκΈ° μλ°μ€ν¬λ¦½νΈμ λͺ¨λ κ°μ λ°μ΄ν° νμ
μ κ°λλ€. κ°μ μ μ₯ν λ ν보ν΄μΌ νλ λ©λͺ¨λ¦¬ 곡κ°μ ν¬κΈ°λ₯Ό κ²°μ νκΈ° μν΄, κ°μ μ°Έμ‘°ν λ ν λ²μ μ½μ΄ λ€μ¬μΌ ν λ©λͺ¨λ¦¬ 곡κ°μ ν¬κΈ°λ₯Ό κ²°μ νκΈ° μν΄, λ©λͺ¨λ¦¬μμ μ½μ΄ λ€μΈ 2μ§μλ₯Ό μ΄λ»κ² ν΄μν μ§ κ²°μ νκΈ° μν΄. νμ§λ§ μλ°μ€ν¬λ¦½νΈλ μ μ νμ
μ΄ μλ λμ νμ
μΈμ΄μ΄λ€. λ³μλ₯Ό μ μΈν λ λ°μ΄ν°μ νμ
μ μ¬μ μ μ μΈνλ κ²μ΄ μλλ€. μ΄λ€ λ°μ΄..
1. νΈμ΄μ€ν
μλ°μ€ν¬λ¦½νΈ μμ§μ μ½ μ€νμ μ μ μ€ν컨ν
μ€νΈλ₯Ό λ΄λλ€. environmentRecord νμ¬ μ»¨ν
μ€νΈμ κ΄λ ¨λ μ½λλ€μ μλ³μ μ 보λ€μ΄ μ μ₯ 맀κ°λ³μ μ΄λ¦, ν¨μ μ μΈ, λ³μλͺ
λ±μ μμλλ‘ μμ§ outerEnvironmentReference λ°λ‘ μ§μ 컨ν
μ€νΈ(ν΄λΉ ν¨μκ° μ μΈλ μμΉ)μ LexicalEvironment μ 보λ₯Ό μ°Έμ‘° μ½μ€νμμλ κ°μ₯ μ΅κ·Όμ μ€νλ μ€ν컨ν
μ€νΈλ§ νμ±νλλ€. λ§μ½ ν¨μ aμμ ν¨μ bκ° μ€νλλ©΄ λ μ€ν 컨ν
μ€νΈλ₯Ό λ΄λλ€. ν¨μ bμ μ€νμ λ§μΉκ³ ν¨μ bκ° μ’
λ£λλ©΄ μ€ν컨ν
μ€νΈκ° μ¬λΌμ§κ³ λ€μ aλ‘ λμμ΄. μμ΄λ μ’
λ£λλ©΄ μ μ 컨ν
μ€νΈλ‘. console.log(TVChannel) //undefined var TVChannel = "Netflix"; ..
κ°μ²΄λ μνλ₯Ό λνλ΄λ propertyμ λμμ λνλ΄λ methodλ‘ μ΄λ£¨μ΄μ Έμλ€. λ©μλκ° μμ μ΄ μν κ°μ²΄μ propertyλ₯Ό μ°Έμ‘°νλ €λ©΄ const someone = { name: '9yu', getName() { return someone.name; }; }; μ΄λ κ² ν μ λ μκ² μ§λ§, μ’μ λ°©λ²μ μλλ€. const someone = { name: '9yu', getName() { return this.name; }; }; λμ μ΄λ κ² thisλ₯Ό μ¬μ©ν΄μ μμ μ΄ μν κ°μ²΄λ₯Ό μ°Έμ‘°ν μ μλ€. 1. this λ°μΈλ© function printThis() { console.log(this); } printThis(); μ§λμ£Ό ν΄λ‘μ μμ μ€ν컨ν
μ€νΈμ λν΄μ νλ² λ΄€μλ€. ν¨μλ₯Ό νΈμΆν λ μ€ν컨ν
μ€νΈ..
μ μ : ν¨μμ ν¨μκ° μ μΈλ μ΄νμ νκ²½μ μ‘°ν© μ΄λ€ ν¨μ Aμμ μ μΈν λ³μ aλ₯Ό μ°Έμ‘°νλ λ΄λΆ ν¨μ Bλ₯Ό μΈλΆλ‘ μ λ¬ν κ²½μ°, Aμ μ€ν 컨ν
μ€νΈκ° μ’
λ£λ μ΄νμλ λ³μ aκ° μ¬λΌμ§μ§ μλ νμ 0. μ€ν 컨ν
μ€νΈ μ μ : μ€νν μ½λμ μ 곡ν νκ²½ μ 보λ€μ λͺ¨μλμ κ°μ²΄ νμΈμμ λμ¨ νμ± λ μ½λμ λΉμ·ν κ°λ
..? // ------------------- (1) var a = 1; function outer() { function inner() { console.log(a); var a = 3; // --------------- (2) } inner(); // -------- (3) console.log(a); // ----------------- (4) } outer(); // --------..
1. OOP 1-1. κ°μ²΄μ§ν₯μ 4κ°μ§ νΉμ± a. λ€νμ± ν κ°μ§ μν μ΄ μν©μ λ°λΌ κ°κΈ° λ€λ₯Έ νλμ νλ€. μ
°νκ° νκΈ°μΉ¨μ_νλ€() λΆ μ£Όλ°©μ₯ -> λμΉλ₯Ό_λ³Έλ€() 쑰리μ₯ -> μ리νλ_μ²μ_νλ€() b. μΆμν 곡ν΅λ κΈ°λ₯μ λ½μλΈλ€. νμ€ μΈκ³μ 볡μ‘ν νμμ κ°λ¨ν ννλ‘ λͺ¨λΈλ§νλ€. (simplify) μ΅μνμ μ 보λ₯Ό μΆμΆ c. μΊ‘μν ꡬν λ΄μ©μ λ΄λΆμ μ¨κ²¨μ μμ§λλ₯Ό λμ΄λ κ² μμ§λ : κ°μ²΄κ° μμ κ³Ό κ΄λ ¨λ κ²μ μ€μ¬μ μΌλ‘ νλνλ€. c-1. κ²°ν©λ λ κ°μ²΄κ° μλ‘ κ΄λ ¨λκ±°λ μμ‘΄νλ μ λ μ μ’μκ±° (κ°μ²΄λ₯Ό λΌμ΄λ΄κ±°λ λ³κ²½νκΈ° νλ€λ€) c-2. μΊ‘μνλ₯Ό μλ°ν μ¬λ‘ μ λ¬Έλ°°λ¬λΆκ° κ³ κ°μ μ§κ°μ κ°μ Έμμ, νκΈμ νμΈνκ³ , λμ κ°μ Έκ°λκ² μλλΌ κ³ κ°μ΄ μμ μ μ§κ°μ νκΈμ νμΈνκ³ , λμ..
νμ
μΆλ‘ μΈν°νμ΄μ€μ μ λ€λ¦μ μ΄μ©ν νμ
μΆλ‘ // μ λ€λ¦μΌλ‘ λκ²¨μ€ κ°μ μΈν°νμ΄μ€μ μμ±μΌλ‘ μ¬μ©ν μ μμ interface Dropdown { value: T title: string; } var shoppingItem: Dropdown = { value: // λ§μ°μ€ μ¬λ¦¬λ©΄ stringμΌλ‘ λ¬λ€. μΈν°νμ΄μ€λ₯Ό extendsν΄μ μ¬μ©ν λλ, interface Dropdown { value: T title: string; } var items: Dropdown = { value: 10, title: 'a' } interface DetailedDropdown extends Dropdown { description: string; tag: T; } var detailItems: DetailedDr..