자바스크립트 변수 범위

범위내용의 변수와 기능에 특정 부분의 코드입니다.

에서 JavaScript,변수가 두 가지 유형의 범위:

  1. 글로벌 범위
  2. 로컬 범위

글로벌 범위

변수 선언서 상단의 프로그램 또는 외부의 함수를 고려하는 글로벌 범위 변수입니다.전역 범위 변수의 예를 살펴 보겠습니다.

// program to print a text let a = "hello";function greet () { console.log(a);}greet(); // hello

위의 프로그램에서 변수 a 는 프로그램의 맨 위에 선언되며 전역 변수입니다. 변수a는 프로그램의 어느 곳에서나 사용할 수 있음을 의미합니다.

전역 변수의 값은 함수 내에서 변경 될 수 있습니다. 예를 들어,

// program to show the change in global variablelet a = "hello";function greet() { a = 3;}// before the function callconsole.log(a);//after the function callgreet();console.log(a); // 3

위의 프로그램에서 변수 a 는 전역 변수입니다. A 의 가치는 hello 입니다. 그런 다음 변수 a 가 함수 내부에서 액세스되고 값이 3 으로 변경됩니다.

따라서 함수 내에서 변경 한 후 a 의 값이 변경됩니다.

참고: 전역 변수의 값이 프로그램의 다른 영역에서 변경 될 수 있으므로 전역 변수를 사용하지 않는 것이 좋습니다. 그것은 프로그램에서 알 수없는 결과를 소개 할 수 있습니다.자바 스크립트에서 변수를 선언하지 않고 사용할 수도 있습니다. 선언하지 않고 변수를 사용하면 해당 변수가 자동으로 전역 변수가됩니다.

예를 들어

function greet() { a = "hello"}greet();console.log(a); // hello

위의 프로그램에서 변수 a 는 전역 변수입니다.

변수가let a = "hello"를 사용하여 선언 된 경우 프로그램에서 오류가 발생합니다.

참고: JavaScript 에는 변수를 선언하지 않고 사용할 수없는"strict mode";가 있습니다. Strict 에 대해 자세히 알아 보려면 JavaScript Strict 를 방문하십시오.

로컬 범위

변수할 수 있는 지역의 범위를,나.e 만 액세스할 수 있습니다 내에서 기능이다.

예제 1:지역의 범위 변수

// program showing local scope of a variablelet a = "hello";function greet() { let b = "World" console.log(a + b);}greet();console.log(a + b); // error

출력

helloWorldUncaught ReferenceError: b is not defined

위에서 프로그램,변수에는 전역 변수와 변 b 은 지역 변수입니다. 변수 b 는 함수 인사 내부에서만 액세스 할 수 있습니다. 따라서 함수 외부에서 변수 b 에 액세스하려고하면 오류가 발생합니다.

Let Is Block Scoped

Thelet키워드는 block scoped 입니다(변수는 즉시 블록에서만 액세스 할 수 있음).

예제 2:블록 범위 변수

// program showing block-scoped concept// global variablelet a = 'Hello';function greet() { // local variable let b = 'World'; console.log(a + ' ' + b); if (b == 'World') { // block-scoped variable let c = 'hello'; console.log(a + ' ' + b + ' ' + c); } // variable x cannot be accessed here console.log(a + ' ' + b + ' ' + c);}greet();

출력

Hello WorldHello World helloUncaught ReferenceError: x is not defined

위에서 프로그램,변

  • 글로벌 변수입니다. 프로그램의 어느 곳에서나 액세스할 수 있습니다.
  • b 는 지역 변수입니다. 함수greet내부에서만 액세스 할 수 있습니다.
  • c 는 블록 범위가 지정된 변수입니다. if문 블록 내부에서만 액세스 할 수 있습니다.

따라서 위의 프로그램에서 처음 두console.log()는 문제없이 작동합니다.

그러나 세 번째console.log()에서 블록 외부의 블록 범위 변수 c 에 액세스하려고합니다. 이렇게하면 오류가 발생합니다.

참고:JavaScript 에서varletvar c = 'hello';if문 위에서 프로그램으로,모든 프로그램 작품으로,c 로 취급한 지역 변수입니다.

letvar에 대해 자세히 알아 보려면 JavaScript let vs var 를 방문하십시오.

Related Posts

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다