코드가 적힌 순간 스코프가 정해진다. 이것을 정적 스코프(lexical scope)라고 한다. 함수의 실행순서에 따라 스코프가 바뀌면 동적 스코프라고 한다.
var name = 'zero';
function log() {
console.log(name);//nero
}
function wrapper() {
name = 'nero'//전역변수 수정. nero.
log();
}
wrapper();
var name = 'zero';
function log() {
console.log(name);//zero
}
function wrapper() {
var name = 'nero'//전역변수 수정. nero.
log();//console.log와 혼동주의!
}
wrapper();
비밀변수로 사용할 수 있다.
function wrapper() {
var password = '비밀번호(제로초바보)'//전역변수 수정. nero.
log();//console.log와 혼동주의!
}
console.log(password);//변수가 없다고 나옴