π΄ Dead Zone
βͺ μλ°μ€ν¬λ¦½νΈλ var, let κ³μ΄μ λ³μκ° μ μΈλμμ κ²½μ°, μ€ν¬λ¦½νΈμ μ΅μλ¨μΌλ‘ λμ΄μ¬λ¦¬λ νΈμ΄μ€ν μ μ§ννλ€.
console.log(myName);
var myName = "ryong";
μμ κ°μ μ½λλ₯Ό μ€νμν€λ©΄ μλ°μ€ν¬λ¦½νΈ λ΄λΆμμλ νΈμ΄μ€ν μΌλ‘ μΈν΄ μλμ κ°μ΄ ν΄μνλ€.
var myName;
console.log(myName); // undefined
myName = "ryong";
νμ§λ§ var λμ letμ μ¬μ©ν κ²½μ° μλμ κ°μ΄ μλ¬λ₯Ό λ°μμν¨λ€.
console.log(myName); // error
let myName = "ryong";
βͺ varλ μμΌλ‘ μ λ μ¬μ©νμ§ λ§μ.
π Block Scope
βͺ constμ letμ λΈλ‘ μ€μ½νλ‘ μ μ©λλ λ³μλ€.
βͺ λ΄λΆμμ μΈλΆμ μ μΈλ λ³μλ₯Ό μ°Έμ‘°ν μλ μμ§λ§, μΈλΆμμ λ΄λΆμ μ μΈλ λ³μλ₯Ό μ°Έμ‘°ν μ μλ€.
π‘ New ?? Operator
βͺ || μ°μ°μλ μ°μ°μ μμ λ³μκ°μ΄ μ ν¨νμ§ μλ€λ©΄ λ€μ λ³μλ₯Ό ν λΉνλ€.
βͺ μ΄λ, 0κ³Ό ' 'μ μ ν¨ν κ°μΌλ‘ μ·¨κΈνμ§ μλλ€ (false).
βͺ ?? μ°μ°μλ || μ°μ°μμ κΈ°λ₯μ λΉμ·νλ 0κ³Ό ' 'μ μ ν¨ν κ°(true)μΌλ‘ μ·¨κΈνλ€.
name = 0
// 0
console.log("hello", name || "anonymous")
// hello anonymous
console.log("hello", name ?? "anonymous")
// hello 0
name = ""
// ""
console.log("hello", name || "anonymous")
// hello anonymous
console.log("hello", name ?? "anonymous")
// hello
π’ Optional Chaining
const ryong = {
name: "ryong"
}
console.log(ryong.profile.email)
// Uncaught TypeError: Cannot read property 'email' of undefined at <anonymous>
// same meaning code
console.log(ryong.profile && ryong.profile.email)
console.log(ryong?.profile?.email)
π΅ Object entires, Object values, Object fromEntries
const person = {
name: "ryong",
age: 28
}
// 1οΈβ£ Object values
Object.values(person)
// (2) ["ryong", 28]
// 2οΈβ£ Object entries
Object.entries(person)
// (2) [Array(2), Array(2)]
// 0: ["name", "ryong"]
// 1: ["age", 28]
Object.entries(person).forEach(item => console.log(item[0], item[1]))
// name ryong
// age 28
// 3οΈβ£ Object fromEntries
Object.fromEntries([ ["name", "ryong"], ["age", 28], ["f", "k"], ["hello", true] ]);
// { name: "ryong", age: 28, f: "k", hello: true }
π£ λ¬Έμμ΄κ³Ό μ«μ νν λ³ν
// μ«μ -> λ¬Έμμ΄
const stringFormat = numberFormat + "";
// λ¬Έμμ΄ -> μ«μ
const numberFormat = +stringFormat;
'JavaScript' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[ JS ] Rest And Spread (0) | 2022.07.05 |
---|---|
[ JS ] Destructuring (0) | 2022.07.05 |
[ JS ] Array (0) | 2022.07.05 |
[ JS ] Strings (0) | 2022.07.05 |
[ JS ] Functions (0) | 2022.07.05 |