2013-12-16 4 views
1

자바 스크립트에서 다음 스 니펫을 고려하십시오. 다음 코드의 출력은 : 제 경고 제 경고 "2"자바 스크립트의 전역 범위 및 로컬 범위

var a = 1; 
function test(){ 
    alert(a); 
    var a = 2; 
    alert(a); 
} 
test(); 

왜 제 경고가 1 인 글로벌 변수의 값을 표시하지 않는 표시하는 반면 "미등록"표시?

답변

4

귀하가보고있는 것은 variable hoisting입니다.

이 코드가 해석되는 방식입니다 :

그것은이라고
function test(){ 
    var a; // a === undefined 
    alert(a); 
    a = 2; 
    alert(a); 
} 
관련 문제