JS에서 전역변수 선언은 크게 명시적 선언과 암시적 선언으로 나누어지며, 이에 대해 아래와 같이 소개합니다.
선언 방법 1:
함수 외부에서 선언하려면 var(키워드) 변수명(식별자)을 사용하세요. 함수 외부에서는 전역 변수이고, 그렇지 않으면 함수 내에서 선언된 지역 변수입니다. 이 메소드는 명시적 선언입니다.
var를 사용하는 대신 식별자 test에 값을 직접 할당하면 암시적으로 전역 변수 test가 선언됩니다. 명령문이 함수 내에 있더라도 함수가 실행되면 test는 전역 변수가 됩니다.
창 전역 개체를 사용하여 선언합니다. 전역 개체의 속성도 전역 변수입니다.
실제 매개변수와 형식 매개변수의 데이터 전송에 따른 변수 수를 줄이고 시간 소모를 줄일 수 있습니다.
글로벌 변수의 단점:
(1) 글로벌 변수는 정적 저장 영역에 저장됩니다. 프로그램이 실행될 때 메모리가 할당되고 메모리가 해제됩니다. 프로그램이 종료됩니다. 로컬 변수의 동적 할당 및 동적 해제에 비해 수명이 상대적으로 길기 때문에 전역 변수가 너무 많으면 더 많은 메모리 단위를 차지하게 됩니다.
(2) 전역 변수는 함수의 캡슐화 성능을 파괴합니다. 함수는 일반적으로 함수 매개변수와 반환 값을 통해 입력과 출력을 수행하는 블랙박스와 같습니다. 그러나 함수에 전역 변수를 사용하면 함수 본문의 명령문이 함수 매개변수를 우회하고 액세스를 위한 값을 반환할 수 있습니다. 이러한 상황은 함수의 독립성을 파괴하고 함수를 전역 변수에 종속되게 만듭니다. 동시에, 이 기능의 이식성도 감소합니다.
(3) 전역 변수는 함수 코드를 읽기 어렵게 만듭니다. 여러 함수가 전역 변수를 사용할 수 있기 때문에 전역 변수의 값은 함수가 실행될 때 언제든지 변경될 수 있으며 이는 프로그램 오류 확인 및 디버깅에 매우 해롭습니다.
따라서 꼭 필요한 경우가 아니면 전역 변수를 사용하지 않는 것이 가장 좋습니다.