βοΈ μ΄λ² μ λ μ ν΅ν΄ μκ² λ κ²
μ€μ½νλ 무μμΈκ°μ?
λΈλ‘ λ 벨 μ€μ½νλ₯Ό μ€λͺ ν΄λ³΄μΈμ.
μ€μ½ν 체μΈμ΄ 무μμΈκ°μ?
<λ΅ λ―Έλ¦¬λ³΄κΈ°>
π€ μ€μ½νκ° λ¬΄μμΈκ°μ?
π€ μ€μ½νλ μλ³μκ° μ ν¨ν λ²μλ₯Ό λ§ν©λλ€. λͺ¨λ μλ³μ(λ³μλͺ , ν¨μλͺ , ν΄λμ€λͺ λ±)λ μμ μ΄ μ μΈλ μμΉμ μν΄ λ€λ₯Έ μ½λκ° μλ³μ μμ μ μ°Έμ‘°ν μ μλ μ€μ½νκ° κ²°μ λ©λλ€.
π€ λΈλ‘ λ 벨 μ€μ½νλ₯Ό μ€λͺ ν΄λ³΄μΈμ.
π€ ν¨μ λ΄λΆ λΏλ§ μλλΌ λͺ¨λ μ½λ λΈλ(if, for, while, try/catch)μ΄ μ§μ μ€μ½νλ₯Ό λ§λλ κ²μ΄ λΈλ‘ λ 벨 μ€μ½νμ΄κ³ let, const κ° μ΄μ ν΄λΉλ©λλ€.
π€ μ€μ½ν 체μΈμ΄ 무μμΈκ°μ?
π€ μ€μ½νκ° κ³μΈ΅μ μΌλ‘ μ°κ²°λ κ²μ μ€μ½ν 체μΈμ΄λΌκ³ νλλ°, λͺ¨λ μ§μ μ€μ½νμ μ΅μμ μ€μ½νλ μ μ μ€μ½νμ λλ€.
λ³μλ₯Ό μ°Έμ‘°ν λ μλ°μ€ν¬λ¦½νΈ μμ§μ μ€μ½ν 체μΈμ ν΅ν΄ ν΄λΉ μ½λμ μ€μ½νμμ μμν΄μ μμ μ€μ½ν λ°©ν₯μΌλ‘ μ΄λνλ©° μ μΈλ λ³μλ₯Ό κ²μν©λλ€.
βοΈ μ€μ½ν
μ€μ½νλ μλ³μκ° μ ν¨ν λ²μλ₯Ό λ§ν©λλ€.
λͺ¨λ μλ³μ(λ³μλͺ , ν¨μλͺ , ν΄λμ€λͺ λ±)λ μμ μ΄ μ μΈλ μμΉμ μν΄ λ€λ₯Έ μ½λκ° μλ³μ μμ μ μ°Έμ‘°ν μ μλ μ ν¨ λ²μκ° κ²°μ λ©λλ€.
μ€μ½ν(μ ν¨λ²μ)λ₯Ό ν΅ν΄ μλ³μμΈ λ³μ μ΄λ¦μ μΆ©λμ λ°©μ§νμ¬ κ°μ μ΄λ¦μ λ³μλ₯Ό μ¬μ©ν μ μκ² ν©λλ€.
μ€μ½ν λ΄μμ μλ³μλ μ μΌν΄μΌ νμ§λ§ λ€λ₯Έ μ€μ½νμλ κ°μ μ΄λ¦μ μλ³μλ₯Ό μ¬μ©ν μ μμ΅λλ€.
β ν¨μμ 맀κ°λ³μλ ν¨μ λͺΈμ²΄ λ΄λΆμμλ§ μ°Έμ‘°ν μ μκ³ ν¨μ μΈλΆμμλ μ°Έμ‘°ν μ μλ€.
===> 맀κ°λ³μλ₯Ό μ°Έμ‘°ν μ μλ μ ν¨λ²μ(μ€μ½ν)κ° ν¨μ λ΄λΆλ‘ νμ λκΈ° λλ¬Έμ΄λ€.
β
let x = 'global';
function foo() {
let x = 'local';
console.log(x); // local
}
foo();
console.log(x); // global
π μ½λμ κ°μ₯ λ°κΉ₯ μμμ μ μΈλ λ³μ xλ μ΄λμλ μ°Έμ‘°ν μ μμ΅λλ€. νμ§λ§ foo ν¨μ λ΄λΆμ μ μΈλ λ³μ xλ foo ν¨μ λ΄λΆμμλ§ μ°Έμ‘°ν μ μκ³ foo ν¨μ μΈλΆμμλ μ°Έμ‘°ν μ μμ΅λλ€. μ΄λ λκ°μ λ³μ xλ μλ³μ μ΄λ¦μ΄ λμΌνμ§λ§ μμ μ΄ μ ν¨ν λ²μ, μ¦ μ€μ½νκ° λ€λ₯Έ λ³κ°μ λ³μμ λλ€.
μ°Έκ³ )
var ν€μλλ‘ μ μΈλ λ³μλ κ°μ μ€μ½ν λ΄μμ μ€λ³΅ μ μΈμ΄ νμ©λμ λ§μ λΆμμ©μ μΌμΌν΅λλ€.
const, let ν€μλλ‘ μ μΈλ λ³μλ κ°μ μ€μ½ν λ΄μμ μ€λ³΅ μ μΈμ νμ©νμ§ μμ΅λλ€.
βοΈ μ€μ½ν 체μΈ
λͺ¨λ μ€μ½νλ νλμ κ³μΈ΅μ κ΅¬μ‘°λ‘ μ°κ²°λλ©°, λͺ¨λ μ§μ μ€μ½νμ μ΅μμ μ€μ½νλ μ μ μ€μ½νμ λλ€. μ΄λ κ² μ€μ½νκ° κ³μΈ΅μ μΌλ‘ μ°κ²°λ κ²μ μ€μ½ν 체μΈμ΄λΌκ³ ν©λλ€.
λ³μλ₯Ό μ°Έμ‘°ν λ μλ°μ€ν¬λ¦½νΈ μμ§μ μ€μ½ν 체μΈμ ν΅ν΄ λ³μλ₯Ό μ°Έμ‘°νλ μ½λμ μ€μ½νμμ μμνμ¬
μμ μ€μ½ν λ°©ν₯μΌλ‘ μ΄λνλ©° μ μΈλ λ³μλ₯Ό κ²μν©λλ€.
===> μμ μ€μ½νμμ μ ν¨ν λ³μλ νμ μ€μ½νμμ μμ λ‘κ² μ°Έμ‘°ν μ μμ§λ§ νμ μ€μ½νμμ μ ν¨ν λ³μλ₯Ό μμ μ€μ½νμμ μ°Έμ‘°ν μ μμ΅λλ€.
βοΈ var μ ν¨μ λ 벨 μ€μ½ν // let, const μ λΈλ‘ λ 벨 μ€μ½ν
β var ν€μλλ‘ μ μΈλ λ³μλ ν¨μ λ 벨 μ€μ½νλ§ μΈμ νκΈ° λλ¬Έμ μ½λ λΈλ‘ λ΄μμ μ μΈλμμ΄λ λͺ¨λ μ μ λ³μκ° λλ€. ==> μλμΉ μκ² κ°μ΄ μ¬ν λΉλλ λΆμμ©μ΄ μκΈΈ μ μλ€.
β let, const ν€μλλ λΈλ‘ λ 벨 μ€μ½νλ₯Ό μ§μνμ¬, ν¨μ λ΄λΆ λΏλ§ μλλΌ λͺ¨λ μ½λ λΈλ(if, for, while, try/catch)μ΄ μ§μ μ€μ½νλ₯Ό λ§λ λ€.
βοΈ λ μ컬 μ€μ½ν (μ μ μ€μ½ν)
var x = 1;
function foo(){
var x = 10;
bar();
}
function bar(){
console.log(x);
}
foo();
bar();
μλ°μ€ν¬λ¦½νΈλ λ μ컬 μ€μ½νλ₯Ό λ°λ₯Έλ€. κ·Έλμ ν¨μλ₯Ό μ΄λμ μ μνλμ§μ λ°λΌ μμ μ€μ½νλ₯Ό κ²°μ νλ€.
===> ν¨μμ μμ μ€μ½νλ μΈμ λ μμ μ΄ μ μλ μ€μ½νμ΄λ€.
λ°λΌμ μ μμ λ₯Ό μ€ννλ©΄ μ μ λ³μ xμ κ° 1μ λ λ² μΆλ ₯νλ€.
(ν¨μκ° νΈμΆλ μμΉλ μμ μ€μ½ν κ²°μ μ μ΄λ€ν μν₯μ μ£Όμ§ μλλ€. )
μΆκ° 곡λΆνκΈ°
λ μ컬 μ€μ½νλ ν΄λ‘μ μ κΉμ κ΄κ³κ° μλ€.
π©π» λͺ¨λ μλ°μ€ν¬λ¦½νΈ Deep Diveλ₯Ό μ λ νκ³ μ κ° μ΄ν΄ν λ΄μ©μ μ 리ν κΈμ λλ€ π©π»
'πLanguage > JavaScript' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Deep Dive] μ€ν 컨ν μ€νΈ (0) | 2022.12.05 |
---|---|
[Deep Dive] μ μ λ³μμ λ¬Έμ μ (0) | 2022.12.05 |
[Deep Dive] ν¨μ μ μΈλ¬Έκ³Ό ν¨μ ννμμ μ°¨μ΄, μ½λ°± ν¨μ, ν¨μν νλ‘κ·Έλλ°μ΄ νμν μ΄μ (0) | 2022.12.01 |
[Deep Dive] λ³μμ νΈμ΄μ€ν (0) | 2022.11.30 |
[#JS 30 challenge] Day 2. Clock λ°°μ΄ μ (0) | 2022.08.13 |