>웹 프론트엔드 >JS 튜토리얼 >JAVASCRIPT 함수 범위 및 사전 선언 Share_기본 지식

JAVASCRIPT 함수 범위 및 사전 선언 Share_기본 지식

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB원래의
2016-05-16 17:24:461172검색

C, Java 등 일부 언어에는 블록 수준 범위가 있습니다. 즉 중괄호 안의 각 코드 조각에는 자체 범위가 있으며 변수는 선언된 코드 세그먼트 외부에서 볼 수 없지만 JavaScript에는 블록이 없습니다. -레벨 범위. JavaScript는 함수 범위를 사용합니다. 즉, 변수는 선언된 함수 본문에 정의되고 이 함수 본문이 중첩된 모든 함수 본문은 함수 본문에서 항상 표시됩니다. 이는 변수가 선언되기 전에 사용할 수 있음을 의미합니다. 이 기능을 "선언 고급"이라고 합니다. 즉, JavaScript 함수에 선언된 모든 변수가 함수의 맨 위로 이동됩니다. 예를 살펴보겠습니다.

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

 var test1 = "globalVariable";
 기능 테스트(){
 console.log(test1);
 var test1 = "localVariable";
  console.log(test1);
 }

위 함수가 실행되면 결과는 다음과 같습니다. "undefine"이 먼저 출력되고 "localVariable"이 출력됩니다.
많은 사람들이 결과가 "globalVariable을 먼저 출력한 다음 localVariable"을 출력하는 것이라고 잘못 생각합니다. 실제로 함수 범위의 특성상 지역 변수는 항상 함수 본문 전체에 정의됩니다. 즉, 함수 본문의 지역 변수는 동일한 이름의 전역 변수를 포함하지만, 프로그램이 var 문을 실행하면 지역 변수가 실제로 할당됩니다. 따라서 위의 과정은 변수 초기화를 원래 위치에 두고 함수 내 변수 선언을 함수 본문의 맨 위로 이동시키는 것과 동일합니다. 다음 함수와 동일합니다
코드 복사 코드는 다음과 같습니다.

 var test1 = "globalVariable" ;
Function test(){
var test1; // 함수 내의 변수 선언을 함수의 맨 위로 이동
console.log(test1)
test1 = " localVariable"; // 할당
  console.log(test1);
 }

단, 함수에서 var로 변수를 선언하지 않으면 상황은 달라진다.
코드 복사 코드는 다음과 같습니다.

 var test1 = "globalVariable";
 function test (){
  console.log(test1);
test1 = "localVariable";
console.log(test1);
}

결과 예: "globalVariable"을 먼저 출력한 다음 "localVariable"을 출력합니다.
함수 본문의 test1 변수는 var로 선언되지 않으므로 기본적으로 전역 변수로 변수를 조기 선언하는 데에는 문제가 없습니다. 첫 번째 줄은 "globalVariable"을 출력하고, 세 번째 줄은 test1 전역 변수의 값을 변경하여 "localVariable"을 출력합니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.