스코프란?
핵심 :
var num1 = 10;
function foo() {
num2 = 20; // 선언되지 않은 변수 num에 20이 할당되었다.
//전역변수로 인식한다
console.log(num1 + num2);
}
foo(); // 30
//전역 스코프 : x, result
let x = 30;
function get(){
return x;
};
//지역 스코프 : "선언이 안 된 변수"
let result = get(20);
//get함수에 20이 전달되었는데 get함수에 파라미터가 없어서
무시하고 넘어간다 그러므로 전역변수 x의 값 30 리턴
//전역 스코프 : x, result
let x = 30;
function get(x){
return x;//지역 스코프가 찾으러 나가서 가장 가까운 x로
};
let result = get(20);
let x=30; //전역
function get() {return x;} //지역 스코프
function set(value){let x=value;} //지역x, 지역 스코프
// 함수 안에 있는 value는 선언되지 않은 변수
**=> 가장 지역 스코프부터 점차 밖으로 찾아나간다
1. 파라미터 value 2. set(10)
but 어차피 리턴문이 없어서 실행 후 데이터가 사라진다**
//value 지역, 함수 안에 있는 value에 인자 할당
set(10);
let result = get(20);//전역
let x=30;
function get(){return x;}
function set(value){x=value;}//{x,value: 선언x}
//(value): 지역변수
set(10)
let result=get(20);
let x=30;
function get(x){return x;}
function set(value){x=value;}//{x,value: 선언x}
//(value): 지역변수
set(10)
let result=get(20);
let x=10;
function add(y){
return x+y;
}
function strangeAdd(x){
return add(x) +add(x)
//add(5) + add(5) ->y의 자리에 5를 넣는다
-> 전역변수 x=10 => 15 +15 => 30
}
let result = strangeAdd(5);