기존의 C계열(C, Java)의 프로그램에서 변수의 유효범위는 {}로 정해진다.
자바스크립트도 문법은 C계통과 비슷 ( java) 하기에 당연스럽게 {}가 변수 유효범위인줄 알았다.
아래와 같이 테스트 해보니 예외가 발생하지 않는다.
결국 자바스크립트에서 변수의 유효범위는 함수기반이다.

* 확실히 하기 위해서 익명함수를 만들고 바로 try catch 구분을 걸었으며 if문 안의 {}안에 변수를
  선언했지만 결과적으로 유효하게 alert창이 출력된다.

//예외가 발생하지 않는다.
try {
    alert((function() { 
        try {
            if ( true ) {
                var myVal = "함수 안의 if 구분 안입니다.";
            }
        }
        catch(e) {alert(e.message);}
        finally  {}
        
        return myVal;
    })());
}
catch(e) {alert(e.message);}
finally  {}

저작자 표시
신고
posted by 뚱2