> 웹 프론트엔드 > JS 튜토리얼 > JavaScript 전역 변수 선언 소개 및 장점과 단점

JavaScript 전역 변수 선언 소개 및 장점과 단점

伊谢尔伦
풀어 주다: 2017-07-18 09:17:40
원래의
2415명이 탐색했습니다.

JavaScript에서 전역 변수 선언은 크게 명시적 선언과 묵시적 선언으로 나누어진다:

선언 방법 1:

var(키워드) + 변수 이름(식별자)을 사용하여 함수 외부에서 선언하는 것, 즉 전역 변수이고, 그렇지 않으면 함수에 선언된 지역 변수입니다. 이 방법은 명시적 선언입니다. 세부 사항은 다음과 같습니다.

<script> 
  var test = 5;//全局变量 
  function a(){ 
    var a = 3;//局部变量 
    alert(a); 
  } 
  function b(){ 
    alert(test); 
  } 
  //a();//调用a方法,那么方法里面的内容才会执行 
  //b();//同上 
</script>
로그인 후 복사

선언 방법 2:

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

<script> 
    test = 5;//全局变量 
    function a(){ 
      aa = 3;//也是全局变量 
      alert(test); 
    } 
    //a();  //输出5 
    //alert(aa);//这里也可以方法a()方法里面的变量,因为aa是全局变量 
  </script>
로그인 후 복사

선언 방법 3:

창 전역 개체를 사용하여 선언합니다. 전역 개체의 속성도 전역 변수에 해당합니다.

<script> 
  window.test = 50; 
  alert(test);//输出50 
</script>
로그인 후 복사

이 방법은 종종 일부 기능을 노출하는 데 사용됩니다. 익명 함수가 실행된 후의 전반적인 상황입니다. 예를 들어 JQuery1.5의 마지막 문장
코드는 다음과 같습니다.

window.jQuery = window.$ = jQuery;
로그인 후 복사

전역 변수의 장점:

변수 수를 줄이고 실제 매개변수와 형식 매개변수의 데이터 전송으로 인한 시간 소모를 줄일 수 있습니다.

전역 변수의 단점:

(1) 전역 변수는 정적 저장 영역에 저장됩니다. 프로그램이 실행될 때 메모리가 할당되고 프로그램이 끝나면 메모리가 해제됩니다. 로컬 변수의 동적 할당 및 동적 해제에 비해 수명이 상대적으로 길기 때문에 전역 변수가 너무 많으면 더 많은 메모리 단위를 차지하게 됩니다.

(2) 전역 변수는 함수의 캡슐화 성능을 파괴합니다. 함수는 블랙박스와 같습니다. 일반적으로 함수 매개변수와 반환값을 통해 입력과 출력을 수행합니다. 함수의 내부 구현은 상대적으로 독립적입니다. 그러나 함수에 전역 변수를 사용하면 함수 본문의 명령문이 함수 매개변수를 우회하고 액세스를 위한 값을 반환할 수 있습니다. 이러한 상황은 함수의 독립성을 파괴하고 함수를 전역 변수에 종속되게 만듭니다. 동시에 이 기능의 이식성도 감소합니다.

(3) 전역 변수는 함수 코드를 읽기 어렵게 만듭니다. 여러 함수가 전역 변수를 사용할 수 있기 때문에 전역 변수의 값은 함수가 실행될 때 언제든지 변경될 수 있으며 이는 프로그램 오류 확인 및 디버깅에 매우 해롭습니다.
따라서 꼭 필요한 경우가 아니면 전역 변수를 사용하지 않는 것이 가장 좋습니다.

변수가 비어 있는지 또는 null인지 확인하는 JS 메서드

function isNull(data){
return (data == "" || data == undefined || data == null) ? "暂无" : data;
}
로그인 후 복사

위 내용은 JavaScript 전역 변수 선언 소개 및 장점과 단점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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