기능 본문 외부에 정의 된 모든 것은 글로벌 변수이며 기능 본문 내부에 정의 된 변수는 로컬 변수입니다. 여기서 정의는 var.
JavaScript에는 암시 적 글로벌 개념이 있습니다. 즉, 선언하지 않는 변수는 글로벌 객체 속성이됩니다. 예를 들어:
코드 사본은 다음과 같습니다.
기능 test () {
myname = "umming";
경고 (myName);
}
시험(); // "Huming"
경고 (myName); // "Huming"
두 결과는 동일하며, 이는 MyName이 글로벌 변수임을 나타냅니다.
그렇다면 암시 적 글로벌 변수와 잘 정의 된 글로벌 변수 사이에 차이가 있습니까? . 답이 있어야합니다. 다음 예를 참조하십시오.
코드 사본은 다음과 같습니다.
// 세 가지 글로벌 변수를 정의합니다
var global_test1 = 1;
Global_test2 = 2; // 부정적인 교과서
(기능 () {
Global_test3 = 3; // 부정적인 교과서
} ());
// 삭제를 시도합니다
global_test1 삭제; // 거짓
global_test2 삭제; // 진실
global_test3 삭제; // 진실
// 삭제를 테스트합니다
경고 (Typeof Global_Test1); // "숫자"
경고 (Typeof global_test2); // "한정되지 않은"
경고 (Typeof global_test3); // "한정되지 않은"
위의 예에서, 우리는 함수 외부에서 var로 정의 된 global_test1을 삭제할 수없고, global_test2 및 global_test3는 var에 의해 정의되지 않은 (함수 본문에서 생성되었는지) 삭제됩니다.
요약하면, 함수 외부에서 VAR에 의해 선언 된 글로벌 변수는 삭제할 수 없지만 암시 적 글로벌 변수는 삭제할 수 있습니다.
참고 : JavaScript에는 "Hoisting"(매달려/정지 구문 분석/사전 사업)이라는 동작이 있습니다.
예제를 사용하여 다음을 설명하겠습니다.
코드 사본은 다음과 같습니다.
var myname = "Huming"; // 글로벌 변수를 선언합니다
기능 test () {
경고 (myName);
var myname = "local_huming";
경고 (myName);
}
시험();
경고의 내용이 두 번 일관성이 있다고 생각하십니까? ? 분명히 일관성이 없어도 일관성을 말할 필요가 있습니까? . 실제 출력은 "정의되지 않은", "local_huming"입니다.
위의 예는 동일합니다
코드 사본은 다음과 같습니다.
var myname = "Huming"; // 글로벌 변수를 선언합니다
기능 test () {
var myname;
Alert (Maname); <br> myname = "local_huming";
경고 (myName); // "현지의"
}
시험();
첫 번째 경고 출력 MyName은 당신이 생각하는 글로벌 변수가 아니라 범위 내의 로컬 변수 (기능 본문)입니다. 선언되지는 않았지만 선언으로 간주되었습니다. 이것이 "호이 스팅"이라고합니다.
이것은 이해되어야합니다. 기능 본문에서 변수를 사용하고 나중에 다시 개장하면 오류가 발생할 수 있습니다.
쓰기 사양 :
코드 사본은 다음과 같습니다.
기능 test () {
var a = 1,
b = 2,
c = a + b,
d = {},
이자형,
에프;
// 기능 본체 ...
}
이점은 다음과 같습니다.
1. 모든 로컬 변수는 함수의 시작 부분에서 정의되며 검색에 편리합니다.
2. 변수가 정의되기 전에 논리 오류가 사용되는 것을 방지합니다.
JavaScript의 변수 선언을 이해 했습니까? 위의 내용은 매우 상세하고 이해하기 쉽습니다. 최종 요약도 매우 적절합니다. 놓치지 마세요.