var name = 'foo';
function log() {
console.log(name);
}
function wrapper() {
name = 'nero';
log();
}
wrapper();
답은 nero // name값은 nero로 변경
var name = 'foo';
function log() {
console.log(name);
}
function wrapper() {
var name = 'nero';
log();
}
wrapper();
답은 foo // name값은 여전히 foo
변수는 선언에 의해 생성되고 할당을 통해 값을 갖는다.
변수는 자신이 선언된 위치에서 생성되고 소멸한다.
전역 변수의 생명 주기는 애플리케이션의 생명 주기와 같다.
하지만 함수 내부에서 선언된 지역 변수는 함수가 호출되면 생성되고 함수가 종료하면 소멸한다.
예시로
function foo() {
var x = 'local';
console.log(x); // local
return x;
}
foo();
console.log(x)'; // ReferenceError: x is not defined