-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
해결됨
좋은강의 감사합니다 이거는 호이스팅이 실행안되는거 같은데
20.10.20 19:20 작성 조회수 182
0
if(true){
var a = 10
if(true){
console.log(a);
var a = 20
}
console.log(a);
}
console.log(a);
일케하면은 10 ,20,20 나오는데
호이스팅이 안되는서 첫번째거는 클로저처럼 내부함수가 외부함수 스코프 참조하는거 알겠는데
그다음은 왜 20 , 20 나오는걸까요??
if 문으로도 스코프 되나여??
답변을 작성해보세요.
2
정재남
지식공유자2020.10.21
ES5 이하 환경에서(var 사용 등) 스코프는 전역스코프 외엔 오직 '함수스코프'만 있습니다.
if문 등에 의한 '블록스코프'는 동작하지 않습니다.
그러니까 작성하신 코드에서는 전역스코프만 존재하는 상황입니다.
클로저, 내부함수, 외부함수 등을 고려할 상황이 아닙니다.
1
0
답변 3