>  기사  >  웹 프론트엔드  >  JavaScript_javascript 기술에서 전역 변수를 선언하는 세 가지 방법 간의 유사점과 차이점에 대해 토론합니다.

JavaScript_javascript 기술에서 전역 변수를 선언하는 세 가지 방법 간의 유사점과 차이점에 대해 토론합니다.

WBOY
WBOY원래의
2016-05-16 17:10:551096검색

변수와 변수 선언은 언어의 가장 기본적인 개념이므로 초보자도 금방 익힐 수 있습니다. JavaScript에서 변수를 선언할 때도 마찬가지입니다. 매우 간단한 var(키워드) 변수 이름(식별자)입니다.

방법1

var test;
var test = 5; 이 문장은 함수에 포함될 수 없다는 점에 유의해야 합니다. 그렇지 않으면 지역 변수가 됩니다. 이것이 전역 변수를 선언하는 첫 번째 방법입니다.

방법 2

test = 5;
var를 사용하지 않고 식별자 test에 직접 값을 할당하면 암시적으로 전역 변수 test가 선언됩니다. 명령문이 함수 내에 있더라도 함수가 실행되면 test는 전역 변수가 됩니다.

방법 3

window.test;
window.test = 5; 이 메서드는 익명 함수가 실행된 후 일부 함수를 세상에 노출하는 데 자주 사용됩니다. JQuery1.5의 마지막 문장과 같은

window.jQuery = window.$ = jQuery;

변수 테스트만 사용한다면 세 가지 방법의 차이는 없을 것입니다. 예를 들어, 경고(테스트)에는 5가 표시됩니다. 그러나 경우에 따라 세 가지 방법 간에 차이가 있습니다. 위의 세 가지 방법으로 각각 a1, a2, a3 세 개의 변수를 선언합니다.

a1 = 11;
var a2 = 22;
window.a3 = 33;

1, 창가용

for(a in window){
if(a=='a1'||a=='a2'||a=='a3'){
Alert(a)
}
}
IE6/7/8/9: a3만 팝업되는데 이는 첫 번째와 두 번째 메서드를 통해 선언된 전역 변수를 for in window를 통해 얻을 수 없음을 나타냅니다.
Firefox/Chrome/Safari/Opera: a1, a2, a3이 모두 팝업되는데, 이는 세 가지 방법으로 선언된 전역 변수를 for in window를 통해 얻을 수 있음을 나타냅니다.


2, 삭제

{
alert(delete a1);
}catch(e){alert('Cannot delete a1')}

를 시도하세요.

시도{
alert(delete a2);
}catch(e){alert('Cannot delete a2')}

시도{
alert(delete a3);
}catch(e){alert('Cannot delete a3')}

결과는 다음과 같습니다

JavaScript_javascript 기술에서 전역 변수를 선언하는 세 가지 방법 간의 유사점과 차이점에 대해 토론합니다.

모든 브라우저에서
1, delete a2가 false인 것을 볼 수 있습니다. 즉, var를 통해 선언된 변수는 삭제할 수 없으며, 모든 브라우저가 동일하게 동작합니다. 이는 Rhino 책에서도 언급됩니다.

2. window.a3을 통해 선언한 전역 변수는 IE6/7/8에서는 삭제할 수 없지만 IE9/Firefox/Chrome/Safari/Opera에서는 삭제할 수 있습니다.

위 두 점에는 차이점이 있지만, 연산에 사용하면 둘 다 true를 반환합니다.

alert(창의 'a1');//true
alert(창의 'a2');//true
alert(창의 'a3');//true
와 함께 사용 개체 창 닫힘을 열면 다음과 같이 모든 브라우저가 동일하게 동작합니다

with(창){
if(a1){
경보(a1);//11
}
if(a2){
경보(a2);//22
}
if(a3){
Alert(a3);//33
}
}

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.