![[JavaScript] λ³μ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxqaHz%2FbtsBQoxBABb%2F4QmepmJpPXm8Ical46qvcK%2Fimg.png)
π λ³μλ 무μμΈκ°μ?
λ³μλ λ°μ΄ν°λ₯Ό μ μ₯νλ 컨ν μ΄λλ‘, μ«μλ λ¬Έμμ κ°μ λ°μ΄ν°λ₯Ό μ μ₯ν μ μμ΄μ. λ³μλ μ€μ λ°μ΄ν°κ° μλλΌ, λ°μ΄ν°κ° μ μ₯λ λ©λͺ¨λ¦¬μ μ£Όμλ₯Ό κ°λ¦¬ν€λ μ°Έμ‘°μμμ.
λ³μλ λ§μΉ λΉμ΄μλ μμμ κ°μμ, μ¬λ¬λΆμ΄ μνλ μ΄λ€ κ°μ΄λ μ 보λ₯Ό λ£μ΄λκ³ νμν λ λ€μ κΊΌλ΄ μΈ μ μμ΄μ.
π₯οΈ λ³μ μ μΈ
μλ°μ€ν¬λ¦½νΈμμλ var
, let
, const
μΈ κ°μ§ ν€μλλ₯Ό μ¬μ©νμ¬ λ³μλ₯Ό μ μΈν μ μμ§λ§, κ°κ°μ ν€μλμλ μ°¨μ΄μ μ΄ μμ΄μ.
1. var
- μ€μ½ν: ν¨μ μ€μ½ν. ν¨μ λ΄μμ μ μΈλ κ²½μ° ν΄λΉ ν¨μ λ΄μμλ§ μ ν¨ν΄μ.
- νΈμ΄μ€ν : μ μΈλ μμΉμ μκ΄μμ΄ ν¨μμ μ΅μλ¨μΌλ‘ νΈμ΄μ€ν λΌμ.
- μ¬ν λΉ: λ³μμ κ°μ μ¬ν λΉν μ μμ΄μ.
console.log(x); // νΈμ΄μ€ν
μΌλ‘ μΈν΄ undefined μΆλ ₯
var x = 5;
console.log(x); // μΆλ ₯: 5
x = 10;
console.log(x); // μ¬ν λΉ κ°λ₯, μΆλ ₯: 10
2. let
- μ€μ½ν: λΈλ‘ μ€μ½ν. {}λ‘ λλ¬μΈμΈ λΈλ‘ λ΄μμλ§ μ ν¨ν΄μ.
- νΈμ΄μ€ν : νΈμ΄μ€ν μ΄ λ°μνμ§λ§, μ μΈ μ μ μ κ·Όν μ μλ 'μΌμμ μ¬κ°μ§λ, TDZ(Temporary Dead Zone)'κ° μ‘΄μ¬ν΄μ.
- μ¬ν λΉ: λ³μμ κ°μ μ¬ν λΉν μ μμ΄μ.
{
console.log(y); // μ€λ₯! TDZ λλ¬Έμ
let y = 6;
console.log(y); // μΆλ ₯: 6
}
y = 11; // μ€λ₯! yλ λΈλ‘ λ°μμ μ κ·Ό λΆκ°
3. const
- μ€μ½ν: λΈλ‘ μ€μ½ν. {}λ‘ λλ¬μΈμΈ λΈλ‘ λ΄μμλ§ μ ν¨ν΄μ.
- νΈμ΄μ€ν : letκ³Ό μ μ¬νκ² νΈμ΄μ€ν μ΄ λ°μνμ§λ§, μ μΈ μ μ μ κ·Όν μ μμ΄μ.
- μ¬ν λΉ: ν λ² ν λΉλ νμλ λ³μμ κ°μ λ³κ²½ν μ μμ΄μ. λ¨, κ°μ²΄λ λ°°μ΄ λ΄λΆμ μμ±μ λ³κ²½ν μ μμ΄μ.
{
console.log(z); // μ€λ₯! TDZ λλ¬Έμ
const z = 7;
console.log(z); // μΆλ ₯: 7
}
z = 12; // μ€λ₯! zλ λΈλ‘ λ°μμ μ κ·Ό λΆκ°, μ¬ν λΉ λΆκ°
μ΄λ¬ν μ°¨μ΄μ λ€λ‘ μΈν΄, varλ λ μ μ°νμ§λ§ μμΈ‘νκΈ° μ΄λ €μ΄ λμμ μΌμΌν¬ μ μμ΄ νλ μλ°μ€ν¬λ¦½νΈμμλ μ£Όλ‘ letκ³Ό constλ₯Ό μ¬μ©νλ κ²μ΄ κΆμ₯λΌμ. letμ λ³ν μ μλ κ°μ, constλ λ³νμ§ μλ κ°μ λνλΌ λ μ¬μ©ν΄μ.
π€ λ³μ μ΄λ¦ μ§κΈ°
λ³μμ μ΄λ¦μ μλ³μ(identifier)λΌκ³ νλ©°, λͺ κ°μ§ κ·μΉμ λ°λΌμΌ ν΄μ.
- λ³μ μ΄λ¦μλ μμ΄ μνλ²³, μ«μ, λ°μ€(_), $λ₯Ό μ¬μ©ν μ μμ΄μ.
- λ³μ μ΄λ¦μ μ«μλ‘ μμν μ μμ΄μ.
- λ³μ μ΄λ¦μ λμλ¬Έμλ₯Ό ꡬλΆν΄μ.
- λ³μ μ΄λ¦μ κΈΈκ² μ§μ κ²½μ°μλ λ°μ€(_)μ΄λ CamelCaseλ₯Ό μ¬μ©ν΄μ.
1. μ¬λ°λ₯Έ λ³μλͺ μμ
// μμ΄ μνλ²³ μ¬μ©
let name = "νκΈΈλ";
// μ«μ μ¬μ©, λ¨ μ²« κΈμλ μ«μκ° μλμ΄μΌ ν¨
let user1 = "κΉκΈΈλ";
// λ°μ€(_) μ¬μ©
let first_name = "μ΄μ² μ";
// $ μ¬μ©
let $price = 1000;
// λμλ¬Έμ ꡬλΆ
let age = 20;
let Age = 30;
// CamelCase μ¬μ©
let userName = "λ°μν¬";
// λ°μ€(_) μ¬μ©νμ¬ κΈ΄ λ³μλͺ
μμ±
let user_address = "μμΈμ κ°λ¨κ΅¬";
2. μλͺ»λ λ³μλͺ μμ
// μ«μλ‘ μμ
let 1number = 1; // μλͺ»λ¨
// νΉμλ¬Έμ μ¬μ© (λ°μ€(_)κ³Ό $λ₯Ό μ μΈν)
let user-name = "μ΅μ§μ"; // μλͺ»λ¨
// 곡백 ν¬ν¨
let user name = "μ€λ―Όμ"; // μλͺ»λ¨
π¨ μ£Όμν μ
var
, let
, const
κ°κ°μ ν€μλλ λ
νΉν νΉμ±μ κ°μ§κ³ μμΌλ©°, μ΄λ₯Ό μ μ΄ν΄νκ³ μ¬μ©νλ κ²μ΄ μ€μν΄μ.
νΉν let
κ³Ό const
λ λΈλ‘ μ€μ½νλ₯Ό κ°μ§λ©°, νΈμ΄μ€ν
μ μν₯μ λ°μ§λ§ var
μλ λ€λ₯΄κ² μ΄κΈ°ν μ μ μ κ·Όν μ μμ΄μ.
π κ²°λ‘
μλ°μ€ν¬λ¦½νΈμμ λ³μλ₯Ό μ¬μ©νλ κ²μ νλ‘κ·Έλλ°μ κΈ°λ³Έμ΄λ©°, var
, let
, const
μ μ°¨μ΄μ μ μ΄ν΄νλ κ²μ μ½λμ μμ μ±κ³Ό κ°λ
μ±μ λμ΄λ λ° λμμ΄ λΌμ.
π μΆκ° μ 보
- μλ°μ€ν¬λ¦½νΈμ λ³μμ λν λ κΉμ μ΄ν΄λ₯Ό μνμ λ€λ©΄, MDN Web Docsμμ μμΈν μ 보λ₯Ό μ°Ύμλ³Ό μ μμ΄μ.
- νΈμ΄μ€ν μ λν ν¬μ€ν μ μ¬κΈ°μ νμΈν μ μμ΄μ.
'Language > JavaScript' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JavaScript] async/await (0) | 2023.12.15 |
---|---|
[JavaScript] μ½λ°± ν¨μ(Callback Function) (0) | 2023.12.14 |
[JavaScript] μ°μ°μ (0) | 2023.12.14 |
[JavaScript] λ°μ΄ν° ν (0) | 2023.12.13 |
[JavaScript] νΈμ΄μ€ν (Hoisting) (2) | 2023.12.13 |
ν¬μ€ν μ΄ μ’μλ€λ©΄ "μ’μμβ€οΈ" λλ "ꡬλ ππ»" ν΄μ£ΌμΈμ!