μμμλ£ν - String, Number, Bigint, Boolean,
undefined
, Symbol, (null
)
μ°Έμ‘°μλ£ν - Array([]
), Object({}
), Function(function(){}
)
- Global Scope vs. Local Scope
- Block Scope vs. Function Scope
- μ μλ³μμ window κ°μ²΄
- μ μΈμμ΄ μ΄κΈ°νλ μ μλ³μ β‘ Strict Modeλ₯Ό μ¬μ©νμ.
let | const | var | |
---|---|---|---|
μ ν¨λ²μ | Block Scope | Block Scope | Function Scope |
μ¬ν λΉ | β | β | β |
μ¬μ μΈ | β | β | β |
Object.keys()
κ°μ²΄κ° κ°μ§κ³ μλ keyλ€μ λͺ©λ‘μ λ°°μ΄λ‘ 리ν΄νλ λ©μλ
κ°μ²΄μ λ΄μ₯ λ©μλκ° μλ κ°μ²΄ μμ±μμΈ Objectκ° μ§μ κ°μ§κ³ μλ λ©μλμ΄λ€.
Object.values()
κ°μ²΄μ valueκ°λ€μ λͺ©λ‘μ λ°°μ΄λ‘ 리ν΄νλ λ©μλ
Object.entries(obj)
ν€μ κ°μ μμΌλ‘ μ΄λ£¨μ΄μ§ κΈΈμ΄ 2μ§λ¦¬ λ°°μ΄μ 리ν΄νλ λ©μλ
μ΄μ€λ°°μ΄μ΄ 리ν΄λλ€.
κ°μ²΄μ μλ‘μ΄ ν€-κ° μμ μΆκ°νλ λ°©λ²
let obj = {}; // μ¬κΈ°μ keyκ° 'age'μ΄κ³ valueκ° 21μΈ νλ‘νΌν°λ₯Ό μΆκ°νκ³ μΆλ€λ©΄ μ΄λ κ² νλ©΄ λλ€. obj.age = 21;
- μμ κ°μ Dot notationμ μ¬μ©ν λ°©λ²μ keyκ°μ΄ μ μ μΈ κ²½μ°μλ§ κ°λ₯νλ€. keyκ° λμ μΌ λλ μλμ²λΌ Braket notationμ μ¬μ©ν λ°©λ²μ μ¨μΌ νλ€.
let obj1 = { apple: 3, orange: 5, mango: 2 }; let obj2 = { apple: 2, peach: 7 }; // obj2μμ obj1μ μλ νλ‘νΌν°λ§ 골λΌμ obj1μ μΆκ°ν΄μ£Όμ for (let prop in obj2) { if (!obj1[prop]) { obj1[prop] = obj2[prop]; } }
λ§μ§λ§μ console.log(i); // --> 5 μΈ μ΄μ
forλ¬Έ μμμconsole.log(i); // -->4
λ₯Ό ν μ΄νμ μ¦κ°λ¬Έμ νλ² λ κ±°μΉκΈ° λλ¬Έμ 5λ‘ μΆλ ₯λλ€.
π¦ λ΄κ° μ¬μ©ν μ½λ(π)λ μ΄λ κ²(π)λ ννν μ μλ€.
!arr.length
===arr.length === 0
!obj1[key]
===!(key in obj1)
Q. ν¨μκ° μ€νλ ν, μ½μμ μΆλ ₯λλ argsμ κ°μ 무μμΌκΉμ?
function printMaxNums(...args) {
console.log(args)
}
printMaxNums(10, 30, 40); // --> [10, 30, 40]
...args
λ rest parameter, rest syntaxλΌκ³ λΆλ¦ λλ€. λ¨μμλ λͺ¨λ μΈμλ₯Ό νλμ λ°°μ΄μ λ΄κΈ° λλ¬Έμ μ΄λ κ² λΆλ¦ λλ€.
Line 3 : printMaxNums(10, 30, 40)
ν¨μ printMaxNumsμ μΈμλ μ΄ 3κ°μ λλ€. μ΄ μΈμλ₯Ό λͺ¨λ ν¨μ printMaxNumsμ μ λ¬νμ¬ μ€νν©λλ€.function printMaxNums(...args) { console.log(args) }
μ€νμ΄ λλ©΄ rest parameter argsλ λͺ¨λ λ¨μμλ μΈμλ₯Ό ν λΉλ°μ΅λλ€. λ°λ‘ 맀κ°λ³μλ₯Ό λΊ΄λμ§ μμμμΌλ‘ argsλ λ°°μ΄μ ννλ‘ λͺ¨λ μΈμλ₯Ό ν λΉλ°μ΅λλ€. κ·Έλ κ² λλ¬Έμ λ΅μ [10, 30, 40], Aμ λλ€.
function printMaxNums(num1, ...args) { console.log(args) // [30, 40] }
λ°λ‘ 맀κ°λ³μλ₯Ό μ§μ νμλ€λ©΄, λ¨μ 맀κ°λ³μλ§ λ°°μ΄μ ννλ‘ rest parameter argsμ ν λΉν©λλ€.
Q. λ€μμ μ½λλ₯Ό μ€νμν¨ νμ result μ κ°μ 무μμ΄ λ κΉμ?
let x = 10;
function outer () {
let x = 20;
function inner () {
x = x + 10;
return x;
}
inner();
}
outer();
let result = x; // --> λ΄κ° κ³ λ₯Έ μ€λ΅: 30. μ λ΅: 10
outer
ν¨μλ₯Ό μ€ννλ©΄,outer
ν¨μ μ€μ½ν λ΄μμinner
ν¨μκ° νΈμΆλ©λλ€.
inner
λ λ³μx
μ κ°μ10
μ λνλ ν¨μμ λλ€. μ΄ λ,inner
μ μν΄ κ°μ΄ λ³κ²½λλx
λinner
μ λ°λ‘ ν λ¨κ³ μ μ€μ½νμΈouter
μ μνx
μ λλ€. μ¦inner
κ° μ€νλλ©΄μ,outer
ν¨μ μ€μ½νμ λ³μx
κ°μ΄30
μΌλ‘ λ°λλλ€.
νμ§λ§ λ³μresult
μ ν λΉλ κ°μ μ μ μ€μ½νμx
μ΄λ―λ‘,outer
ν¨μκ° νΈμΆλμ΄λ μλ¬΄λ° μν₯μ λ°μ§ μμ΅λλ€.