728x90
λ°μν
π‘ μ€μ΅ ν¬μΈνΈ!
π JavaScript μμ λ³μ μ¬μ©νκΈ°
var name = 'Seoyun';
- λ³μλ μλ£λ₯Ό μμλ‘ μ μ₯νλ 곡κ°μ΄λ€.
- var λΌλ ν€μλμ μ€λ₯Έμͺ½μ λ³μ μ΄λ¦μ μ§κ³ , λ³μμ μ μ₯ν μλ£λ₯Ό λ±νΈλ₯Ό μ΄μ©νμ¬ λ£μ΄μ£Όλ©΄ λλ€.
- λ³μμλ object, array, function λ± λͺ¨λ μλ£λ₯Ό λ΄μ μ μλ€.
- var name μ΄λΌλ λΆλΆμ μ μΈ, name='Seoyun' μ΄λΌλ λΆλΆμ κ° ν λΉμ΄λΌκ³ νννλ©°, μΌλ°μ μΌλ‘ λ³μλ₯Ό λ§λ€ λμλ μ μΈκ³Ό ν λΉμ λμμ μ¬μ©νλ€.
- λ³μλ₯Ό λ§λ€ λμλ var μΈμλ let, const λΌλ ν€μλλ₯Ό μ¬μ©κ°λ₯νλ°, λ€λ§ ν€μλλ§λ€ μ μΈ, ν λΉ, λ²μμμ μ°¨μ΄κ° μλ€.
π var
π€ μ¬μ μΈ O
var name1 = 'name1-1';
var name1 = 'name1-2';
- 맨 μ²μμ var ν€μλλ₯Ό μ΄μ©νμ¬ name1 μ΄λΌλ λ³μλ₯Ό μ μΈνμμμλ, λλ²μ§Έμ€μ²λΌ λ€μ var ν€μλλ₯Ό μ΄μ©νμ¬ λμΌνκ² name1 μ΄λΌλ λ³μλ₯Ό μ μΈν μ μλ€.
π€ μ¬ν λΉ O
var name1 = 'name1-1';
name1 = 'name1-3';
- λ³μμ κ°μ μ¬ν λΉνλ€λ κ²μ μ μ½λμ²λΌ 맨μ²μμ λ³μλ₯Ό λ§λ€μ΄ ν λΉν΄λμ μνμμ, λλ²μ§Έμ€μμ μ΄λ―Έ λ§λ€μ΄λμ name1 μ΄λΌλ λ³μμ 'name1-3' μ΄λΌλ κ°μ μ§μ΄λ£λ κ²μ λ§νλ€.
(ν λΉμ κ°μ ν λΉνμ§ μκ³ λ³μλ§ λ§λ€μ΄λμ μνμμ, λμ€μ λ³μμ κ°μ μ§μ΄λ£λ κ²μ λ§νλ©°, λ³μμ μ μΈκ³Ό ν λΉμ λμμλ κ°λ₯νλ€.)
π€ λ²μ : function scope
function func1(){
var name1 = 'Seoyun';
console.log(name1); // Seoyun
}
console.log(name1); // μλ¬
- λͺ¨λ λ³μμλ μ‘΄μ¬ν μ μλ λ²μκ° μ ν΄μ Έμλλ°, var λ³μλ μ‘΄μ¬ λ²μκ° function μ΄λ€.
- μμ²λΌ var λ³μλ₯Ό function λ΄μμ λ§λ€λ©΄ function λ΄μμλ§ μ¬μ©μ΄ κ°λ₯νκΈ° λλ¬Έμ, function μ μΈλΆμμ λΆλ₯΄λ©΄ μλ¬κ° λ°μνλ€.
- μ¦, μ΄λ¬ν function scope λ₯Ό κ°μ§λ λ³μλ ν¨μ μμμ μ μΈλλ©΄ ν¨μ λ°μμ μ κ·Όνμ§ λͺ»νλ€. νμ§λ§ λΈλ‘ μμμ μ μΈλ λ³μλ λΈλ‘ λ°μμ μ°Έμ‘°κ° κ°λ₯νλ€.
π let
π€ μ¬μ μΈ X
let age2 = 10;
let age2 = 20; // μλ¬
- let ν€μλλ‘ λ³μλ₯Ό λ§λ€λ©΄ κ°μ μ΄λ¦μ λ³μλ₯Ό λ λ² μ΄μ μ¬μ μΈν μ μλ€.
- λ§μ½ μ¬μ μΈνκ² λλ€λ©΄ μλ¬κ° λ°μνλλ°, μ΄λ λμ€μ λ³μ μ΄λ¦μ μ€μλ‘ μ€λ³΅ν΄μ λ§λλ μ€μλ₯Ό λ°©μ§ν΄μ£ΌκΈ° μν¨μ΄λ€.
π€ μ¬ν λΉ O
let age2 = 10;
age2 = 30; // κ°λ₯
- let ν€μλλ var ν€μλμ λμΌνκ² μ¬ν λΉμ΄ κ°λ₯νλ€.
π€ λ²μ : block scope
if (true) {
let age2 = 50;
console.log(age2); // 50
}
console.log(age2); // μλ¬
- let ν€μλλ‘ μ μΈν λ³μλ μ€κ΄νΈ λ΄μμ λ§λ€μμ λ μ€κ΄νΈ λ΄μμλ§ μ¬μ©μ΄ κ°λ₯νλ€.
- λ°λΌμ, μ€κ΄νΈμ μΈλΆμμ λΆλ₯΄λ©΄ μλ¬κ° λ°μνλ€.
- μ¦, μ΄λ¬ν block scope λ₯Ό κ°μ§λ λ³μλ μ€κ΄νΈ μμμ μ μΈλλ©΄ μ€κ΄νΈ λ°μμ μ°Έμ‘°κ° λΆκ°λ₯νλ€.
π const
π€ μ¬μ μΈ X
const place3 = 'place3-1';
const place3 = 'place3-2'; // μλ¬
- const ν€μλλ‘ λ³μλ₯Ό λ§λ€λ©΄ let ν€μλμ λ§μ°¬κ°μ§λ‘, κ°μ μ΄λ¦μ λ³μλ₯Ό λ λ² μ΄μ μ¬μ μΈν μ μλ€.
- λ§μ½ μ¬μ μΈνκ² λλ€λ©΄ μλ¬κ° λ°μνλλ°, μ΄λ λμ€μ λ³μ μ΄λ¦μ μ€μλ‘ μ€λ³΅ν΄μ λ§λλ μ€μλ₯Ό λ°©μ§ν΄μ£ΌκΈ° μν¨μ΄λ€.
π€ μ¬ν λΉ X
const place3 = 'place3-1';
place3 = 'place3-3'; // λΆκ°λ₯
- var ν€μλμ let ν€μλμλ λ¬λ¦¬, const ν€μλλ‘ λ³μλ₯Ό λ§λ€λ©΄ κ°μ μ¬ν λΉνλ κ²μ΄ λΆκ°λ₯νλ€.
- μ¦, const ν€μλλ₯Ό μ΄μ©νλ©΄ λμ€μ λ±νΈλ₯Ό μ΄μ©ν΄ κ°μ λ³κ²½νλ κ² μλλ€λ κ²μ΄λ€.
- μ μ΄μ const λ constant μ μ½μλ‘ λ°λμ§ μλ μΌμ ν κ°μ μλ―Ένλ―λ‘, κ°μ΄ λ°λλ©΄ μ¬κ°ν λ¬Έμ κ° λ°μν μ μλ κ²½μ°μ μ¬μ©νλ©΄ μ’λ€.
// const λ‘ object λ₯Ό λ§λ€μμ λ, object μ λ΄λΆ κ°μ λ³κ²½ν΄λ μλ¬κ° λ°μνμ§ μλλ€. (const λ³μ μ체λ₯Ό μ¬ν λΉν κ²μ΄ μλλ―λ‘!)
const person1 = { name1 : 'Jihyeon'};
person1.name1 = 'Seoyun';
// μμ μ΄ λΆκ°λ₯ν object λ₯Ό λ§λ€κ³ μΆμ λλ .freeze() μ¬μ©νλ©΄ λλ€.
const person2 = { name2 : 'Jihyeon'};
Object.freeze(person2); // μ΄μ person2 object λ₯Ό μμ νμ§ λͺ»νκ² λλ€.
person2.name2 = 'Seoyun';
- const λ³μμ object λ₯Ό λ΄μΌλ©΄ object λ΄μ λ°μ΄ν°λ λ³κ²½μ΄ κ°λ₯νλ€.
- μλνλ©΄ μ΄ κ²½μ°λ μλ°νκ² λ§νμλ©΄ λ³μλ₯Ό μ¬ν λΉν κ²μ΄ μλκΈ° λλ¬Έμ΄λ€.
- μμ ν λ³κ²½λΆκ°λ₯ν object λ₯Ό λ§λ€κ³ μΆλ€λ©΄, Object.freeze() λΌλ JavaScript λ΄μ₯ν¨μλ₯Ό μ¬μ©νλ©΄ λλ€.
(νμ§λ§, object λ΄μ object κΉμ§ freeze ν΄μ£Όμ§λ μλλ€λ μ μ κΈ°μ΅νμ!.)
π€ λ²μ : block scope
- const ν€μλλ‘ μ μΈν λ³μλ let ν€μλλ‘ μ μΈν λ³μμ λμΌνκ² μ€κ΄νΈ λ΄μμ λ§λ€μμ λ μ€κ΄νΈ λ΄μμλ§ μ¬μ©μ΄ κ°λ₯νλ€.
- λ°λΌμ, μ€κ΄νΈμ μΈλΆμμ λΆλ₯΄λ©΄ μλ¬κ° λ°μνλ€.
- μ¦, μ΄λ¬ν block scope λ₯Ό κ°μ§λ λ³μλ μ€κ΄νΈ μμμ μ μΈλλ©΄ μ€κ΄νΈ λ°μμ μ°Έμ‘°κ° λΆκ°λ₯νλ€.
728x90
λ°μν
'[κ°λ°] Practice > JavaScript ES6' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JavaScript / ES6] λ³μ μ°μ΅λ¬Έμ νκΈ° (0) | 2022.04.11 |
---|---|
[JavaScript / ES6] λ³μ μ λ¬Έλ² μ΄μ 리νκΈ°_2 (0) | 2022.04.11 |
[JavaScript / ES6] this & arrow function μ°μ΅λ¬Έμ νκΈ° (0) | 2022.04.11 |
[JavaScript / ES6] Arrow function μμ보기 (0) | 2022.04.10 |
[JavaScript / ES6] this μμ보기 (0) | 2022.04.10 |