JScript 의 'var' 정의 변수의 역할 영역

2135 단어
언제 JScript 의 문법 강 좌 를 보 았 는 지 기억 이 나 지 않 습 니 다. 변 수 를 설명 할 때 var 키 워드 를 무시 하 는 것 은 완전히 합 법 적 이 라 고 합 니 다.당시 에 도 자 바스 크 립 트 가 loosely - yped 의 언어 라 고 생각 했 기 때문에 var 는 정말 장식 일 수 있 습 니 다.그러나 사실은 흔히 당연한 결과 가 믿 을 수 없다 는 것 을 증명 한다. 
 아래 의 이 몇 가지 예 의 결 과 를 보면 문 제 를 알 수 있다. 
No.1  
var var00 = 0; document.write(var00 + ' '); var var01 = 1; function foo() { document.write(var01); var var01 = 1; } foo();
[Ctrl + A 전체 주석: 외부 Js 를 도입 하려 면 새로 고침 이 필요 합 니 다.]
No.2  
var00 = 0; document.write(var00 + ' '); var01 = 1; function foo() { document.write(var01); var01 = 1; } foo();
[Ctrl + A 전체 주석: 외부 Js 를 도입 하려 면 새로 고침 이 필요 합 니 다.]
No.3 
var00 = 0; document.write(var00 + ' '); var01 = 1; function foo() { document.write(var01); var var01 = 1; } foo();
[Ctrl + A 전체 주석: 외부 Js 를 도입 하려 면 새로 고침 이 필요 합 니 다.]
이 세 가지 예 의 집행 결 과 는 다음 과 같다.  
 
  
Results#region Results  
No.1  
0  
undefined  

No.2  
0  
1  

No.3  
0  
undefined  
#endregion  

     원래 자 바스 크 립 트 의 변수 도 작용 역 이 있 었 는데, 단지 매우 개괄적 이어서 전역 변수 와 함수 변수 로 나 뉜 다.두 번 째 예 에서 0 과 1 을 얻 은 것 은 모든 변수 가 전역 변수 이 고 그 문장 블록 은 모두 두 개의 변 수 를 정 의 했 기 때문이다.첫 번 째 세 번 째 함수 외 전역 변 수 는 var 키워드 가 있 든 없 든 상관없다 는 것 을 확실히 설명 한다.함수 내의 var 키 워드 는 매우 관건 적 이다. 이것 은 두 번 째 var 01 이 함수 내의 변수 라 는 것 을 설명 하기 때문에 var 01 을 초기 화하 기 전에 출력 하 는 것 은 자연히 'undefined' 이다. 
     그러면 함수 안에 전체 var 01 이 차단 되 지 않 았 나 요?C / C + + 에서 사용 할 수 있 는 것 을 알 고 있 습 니 다: 전역 변 수 를 방문 하면 자 바스 크 립 트 가 가능 합 니까?여기 서 사실 우 리 는 전체 변수 가 도대체 무엇 인지 알 기만 하면 된다.원래 전역 변 수 는 Window 대상 에 동적 으로 추 가 된 인 스 턴 스 window 의 속성 이 었 기 때문에 함수 에 document. write (window. var 01) 만 사용 하면 됩 니 다.그 값 을 1 로 얻 을 수 있 습 니 다.또한 이 컨 텍스트 에서 function 내의 this 도 가리 키 는 window 인 스 턴 스 입 니 다. 인용 을 this. var 01 이 라 고 쓸 수 있 습 니 다. 
    By the way, JScript 튜 토리 얼 을 다시 볼 때 변 수 는 [a - zA - Z] + [a - zA - Z0 - 9] * 형식 만 사용 할 수 있 지만 '$' 는 변수 이름 문자 로 도 사용 할 수 있 고 시작 에 도 사용 할 수 있 습 니 다. 예 를 들 어 $1234, 심지어 $$$$ 합 법 적 인 변수 이름, faint 입 니 다.

좋은 웹페이지 즐겨찾기