debugging시 확인 법!
개발자도구-> sources -> breakpoints& scope& call stack을 확인할 수 있다.
Scope (like 파일)
n0= "n0"
변수선언시 이름만 붙히면 global 내부에 저장됨
var v0= "v0"
var로 선언 된 변수는 global 에 저장됨
let l0= "l0"
let으로 선언 된 변수는 script 에 저장됨
const c0= "c0"
const로 선언 된 변수는 script 에 저장됨
console.log(window.v0, window.n0, window.l0, window.c0)
// v0, n0, undefined, undefined
l0 와 c0는 global에 없으므로 window에서 읽어오지 못함
function fn1(){
n1='n1'; // fn1 stack의 global scope에 저장됨
var v1='v1'; // fn1 stack의 local scope에 저장됨
let l1='l1'; // fn1 stack의 local scope에 저장됨
const c1='c1'; // fn1 stack의 local scope에 저장됨
fn2(); //실행 시 fn2 stack이 생기고, local scope이 fn2의 local scope으로 변경됨
v1, l1, c1 은 찾아볼 수 없게된다..
}
fn1();
Call Stack -> execute context가 쌓이는 곳 (like 폴더)
fn1, fn2 stack은 함수 실행시에만 보이고 함수 실행이 끝나면 없어짐
정리