정적스코프(렉시컬)

홍요한·2020년 7월 1일
0

JavaScript

목록 보기
7/10
post-thumbnail
var name = 'zero';

function log(){
  console.log(name);
}

function wrapper(){
  var name = 'nero';
  log(); //  ==! console.log(name);
}wrapper();

log()의 실행값은 'zero' 이다.

'스코프체인을 따라 변수나 함수는 한단계씩 올라가며 찾는다.'

자칫 wrapper함수 안에 있는 log();를 console.log(name)으로 착각하게 되면, name = 'nero'로 읽는 오류를 범할 수 있다.

코드는 코드자체로 보아야한다. javascript는 스코프체인을 활용해 모든 변수나 함수는 안에서 밖으로 찾는다. 그래서 log()함수 안에 있는 name은 한단계 밖으로 나가 글로벌 변수인 name = 'zero'를 찾아 반환한다.

참고자료

0개의 댓글