JavaScript_javascript 기술의 변수 범위에 대한 심층 분석

WBOY
풀어 주다: 2016-05-16 17:10:23
원래의
1117명이 탐색했습니다.

JavaScript 변수 범위를 배우기 전에 몇 가지 사항을 명확히 해야 합니다.

•JavaScript의 가변 범위는 고유한 범위 체인을 기반으로 합니다.

• JavaScript에는 블록 수준 범위가 없습니다.

• 함수에 선언된 변수는 함수 전반에 걸쳐 정의됩니다.

1. JavaScript 범위 체인
먼저 다음 코드를 살펴보세요.

코드 복사 코드는 다음과 같습니다.



3. JavaScript에는 블록 수준 범위가 없습니다.

이것은 또한 다른 언어에 비해 JavaScript의 더 유연한 부분이기도 합니다.

다음 코드를 주의 깊게 살펴보면 변수 i, j, k의 범위가 동일하고 전체 rain 함수 본문에서 전역적임을 알 수 있습니다.

코드 복사 코드는 다음과 같습니다.



4 . 함수 내 선언된 변수는 함수 전체에서 정의됩니다.

먼저 이 코드를 살펴보세요.

코드를 복사하세요. 코드는 다음과 같습니다.



위 코드는 변수 x가 전체 rain 함수 본문에서 사용될 수 있고 재할당될 수 있음을 보여줍니다. 이 규칙으로 인해 "믿을 수 없는" 결과가 생성됩니다. 다음 코드를 준수하십시오.
코드 복사 코드는 다음과 같습니다.



은 함수 rain의 지역 변수 x가 함수 본문 전체에 걸쳐 정의되기 때문입니다(var x= 'rain-man', 선언됨). 이는 rain 함수 전체에서 선언됩니다. 동일한 이름을 가진 전역 변수 x가 rain 함수 본문에 숨겨져 있습니다. 여기서 '정의되지 않음'이 나타나는 이유는 처음으로 Alert(x)를 실행할 때 로컬 변수 x가 아직 초기화되지 않았기 때문입니다.

따라서 위의 rain 함수는 다음 함수와 동일합니다.

코드 복사 코드는 다음과 같습니다.

function rain(){ var x;alert( x ); x = 'rain-man';alert( x );}

5. 키워드로 정의된 변수는 전역 변수입니다.
코드 복사 코드는 다음과 같습니다.



이것은 JavaScript 초보자들이 흔히 저지르는 실수이기도 합니다. 의도치 않게 많은 전역 변수를 남겨두는 것입니다.

6. 전역 변수는 모두 창 개체의 속성입니다

코드를 복사하세요 코드는 다음과 같습니다. 다음과 같습니다:


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿