js 지역변수와 전역변수

global 과 local

변수의 경합

  • 같은 변수 명이 중복되고, 그것을 호출 할 경우, js 는 그 경합에서 어떤 변수에 손을 들어줄까?
const y = 10;

const adder = function(x){
  const y = 20;
  const result = x+y;
  console.log(result);
}

adder(20) // 20+20 = 40
  • js 에서 지역으로 한정할 수 있는 코드블럭은 함수 내부밖에 없다. 그러니까 지역변수는 함수만 가질 수 있다.
  • 만약 함수가 여러 개면 어떨까?
const y = 10;

const adder = function(x){
  const y = 20;

  return function(){
    const y = 30;

    const result = x+y; 
    console.log(result);
  }
}

const adder2 = adder(40);
adder2(); // 30 + 40 = 70
  • 가장 안에 있는 함수의 변수가 승리한다.