범위내용의 변수와 기능에 특정 부분의 코드입니다.
에서 JavaScript,변수가 두 가지 유형의 범위:
- 글로벌 범위
- 로컬 범위
글로벌 범위
변수 선언서 상단의 프로그램 또는 외부의 함수를 고려하는 글로벌 범위 변수입니다.전역 범위 변수의 예를 살펴 보겠습니다.
// 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 에서var
let
var c = 'hello';
if
문 위에서 프로그램으로,모든 프로그램 작품으로,c 로 취급한 지역 변수입니다.
let
var
에 대해 자세히 알아 보려면 JavaScript let vs var 를 방문하십시오.