λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
javascriptπŸͺ“/javascript μˆ˜μ—…

μžλ°”μŠ€ν¬λ¦½νŠΈ μŠ€μ½”ν”„

by hyojinny 2022. 12. 19.

μŠ€μ½”ν”„λž€ ? 

전체적인 λ²”μœ„ μ•ˆμ—μ„œ μ§€μ—­λ³€μˆ˜λ‘œ λ§Œλ“œλŠ”κ²ƒ 

 

// ν•¨μˆ˜μ™ΈλΆ€μ˜ λ³€μˆ˜λŠ” μ „μ—­λ³€μˆ˜
var obj = 'μ•ˆλ…•';
console.log(window.obj);

 

function fn2() {
  var obj = 'μ•ˆλ…•';
  // μ§€μ—­λ³€μˆ˜
  console.log(obj);
  // ν•¨μˆ˜λ‘œκ°μ•„μ€¬κΈ°λ–„λ¬Έμ— μ½˜μ†” ν™•μΈμ‹œ λ°‘μ˜ μ•ˆλ…•μ΄ λ‚˜μ˜΄
}
fn2();
 
μœ„μ— obj λ³€μˆ˜κ°€ μ‚¬μš©λ¬μ–΄λ„ 
μ§€μ—­λ³€μˆ˜λ₯Ό λ§Œλ“€μ–΄ ν•¨μˆ˜μ•ˆμ— 가두면 또 μ‚¬μš©μ΄ κ°€λŠ₯
λ‘˜μ΄ μ€‘λ³΅λ˜μ§€μ•ŠλŠ”λ‹€.
 
 

function fn2() {
  var obj = 'μ•ˆλ…•';
  // μ§€μ—­λ³€μˆ˜
  console.log(obj);
  // ν•¨μˆ˜λ‘œκ°μ•„μ€¬κΈ°λ–„λ¬Έμ— μ½˜μ†” ν™•μΈμ‹œ λ°‘μ˜ μ•ˆλ…•μ΄ λ‚˜μ˜΄

  function innerFu() {
    console.log(obj, '===');
    var obj = 'hi';
  }
  innerFu();
}
fn2();

 

λ§Œμ•½ 밑에 λ‹€μ‹œ ν•¨μˆ˜λ₯Ό μ§€μ •ν•΄μ€€λ‹€λ©΄ ?

undefined κ°€ λ‚˜μ˜¨λ‹€. 

 

 

ν•¨μˆ˜μ„ μ–Έμ‹κ³Ό 

λ³€μˆ˜λŠ” μŠ€μ½”ν”„λ‚΄μ—μ„œ 무쑰건 μœ„λ‘œ λŒμ–΄μ˜¬λ €μ§„λ‹€.

이게 ν•¨μˆ˜ ν˜Έμ΄μŠ€νŒ…

 

 


function fn2() {
  var obj = 'μ•ˆλ…•';
  console.log(obj);
 

  function innerFu() {
    var obj = 'hi';
    console.log(obj, '===');
    // 항상 λ³€μˆ˜μ„ μ–Έκ³Ό μ΄ˆκΈ°ν™”λŠ” μŠ€μ½”ν”„ μ΅œμƒλ‹¨μ—μ„œ μ‚¬μš©ν•΄μ•Όν•œλ‹€.
  }
  innerFu();
}
fn2();
 
 

μ œλŒ€λ‘œ hi κ°€ λ‚˜μ˜€κ²Œ ν•˜λ €λ©΄ 

항상 μœ„μ—μ„œ λ³€μˆ˜μ„ μ–Έμ„ ν•΄μ•Όν•œλ‹€. μŠ€μ½”ν”„μ˜ 졜 상단

선언전에 μ‚¬μš©ν•˜λ©΄ λͺ»μ½μœΌλ―€λ‘œ μ„ μ–Έ ν›„ μ‚¬μš©ν• κ²ƒ!

 

 


 

 

ν•˜μ§€λ§Œ λ‚΄λΆ€ν•¨μˆ˜μ—μ„œ μ™ΈλΆ€ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•  수 μ—†μœΌλ―€λ‘œ μ‚¬μš©ν•˜λ©΄ μ•ˆλœλ‹€. 

λ³€μˆ˜ 이름을 λ‹€λ₯΄κ²Œ 지정해야함 

 

 

function fn2() {
  var obj = 'μ•ˆλ…•';

  function innerFu() {
    // λ³€μˆ˜μ„ μ–ΈλΆ€κ°€ ν˜Έμ΄μŠ€νŒ…λ˜μ–΄ ν•¨μˆ˜μŠ€μ½”ν”„ μ΅œμƒλ‹¨μœΌλ‘œ 올라감
    // 항상 λ³€μˆ˜μ„ μ–Έκ³Ό μ΄ˆκΈ°ν™”λŠ” μŠ€μ½”ν”„ μ΅œμƒλ‹¨μ—μ„œ μ‚¬μš©ν•΄μ•Όν•œλ‹€.
    var innerobj = 'hi';

    console.log(obj, 'μ™ΈλΆ€ν•¨μˆ˜μ˜ λ³€μˆ˜');
    console.log(innerobj, '===');
  }
  innerFu();
}
fn2();

λ•Œλ¬Έμ— μ§€μ—­λ³€μˆ˜μ˜ 이름은 λ‹€λ₯΄κ²Œ 지정해야함

λŒ“κΈ€