> 웹 프론트엔드 > JS 튜토리얼 > JScript의 'var'는 Variable_javascript 팁의 범위를 정의합니다.

JScript의 'var'는 Variable_javascript 팁의 범위를 정의합니다.

WBOY
풀어 주다: 2016-05-16 19:17:42
원래의
1519명이 탐색했습니다.

JScript 구문 튜토리얼을 언제 읽었는지 기억도 나지 않습니다. 변수를 선언할 때 var 키워드를 무시하는 것이 완전히 합법적이라고 했습니다. 그 당시에는 JavaScript가 느슨한 형식의 언어이기 때문에 var가 실제로는 장식에 불과할 수도 있다고 느꼈습니다. 그러나 당연한 결과가 신뢰할 수 없다는 사실이 종종 입증됩니다.
다음 예의 결과를 보면 문제를 알 수 있습니다.
No.1


[Ctrl A 모두 선택 참고: 외부 J를 도입해야 하는 경우 실행하려면 새로 고쳐야 합니다.
]

2번

[Ctrl A 모두 선택 참고:
외부 J를 도입해야 하는 경우 실행하려면 새로 고쳐야 합니다.
]

3번 [Ctrl A 모두 선택 참고:
외부 J를 도입해야 하는 경우 실행하려면 새로 고쳐야 합니다.
]
이 세 가지 예제의 실행 결과는 다음과 같습니다. 코드 복사

코드는 다음과 같습니다. >
결과#지역 결과
1번
0
정의되지 않음

2번
0
1

3번

undefine 
#endregion



알고 보니 JavaScript 변수에도 범위가 있지만 매우 일반적이며 전역 변수와 함수 변수로 구분됩니다. 두 번째 예에서는 모든 변수가 전역 변수이고 해당 명령문 블록이 총 두 개의 변수를 정의하므로 0과 1을 얻습니다. 함수 외부의 첫 번째와 세 번째 전역 변수는 실제로 var 키워드의 존재 여부가 중요하지 않음을 의미합니다. 함수 내의 var 키워드는 매우 중요합니다. 이는 두 번째 var01이 함수 내의 변수이므로 var01을 초기화하기 전의 출력은 당연히 '정의되지 않음'임을 나타냅니다.

그러면 전역 var01이 함수에서 차단된 것인가요? 우리는 C/C에서 ::를 사용하여 전역 변수에 접근할 수 있다는 것을 알고 있지만 JavaScript에서도 가능합니까? 실제로 전역 변수가 무엇인지 이해하는 한 쉬울 것입니다. 전역 변수는 Window 객체의 창 인스턴스에 동적으로 추가된 속성이므로 값 1을 얻으려면 함수 내에서 document.write(window.var01);만 사용해야 합니다. 동시에, 이 맥락에서 함수의 this는 가리키는 창 인스턴스이기도 합니다. 참조를 this.var01로 작성할 수도 있습니다.
그런데 JScript 튜토리얼을 다시 읽어보니 변수는 [a-zA-Z_] [a-zA-Z0-9_]* 형식만 가능하다고 나와 있는데 ' $'는 변수 이름 문자로도 사용할 수 있으며 $1234와 같이 시작 부분에도 사용할 수 있습니다. $$$도 유효한 변수 이름인 희미합니다.​
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿