JavaScript 범위

스코프는 접근할 수 있는 변수 집합을 의미합니다.

JavaScript 함수 스코프

JavaScript에서는 두 가지 스코프 유형이 있습니다:

  • 지역 스코프
  • 전역 스코프

JavaScript는 함수 스코프를 가지고 있습니다: 각 함수는 새로운 스코프를 생성합니다.

스코프는 이러한 변수의 접근성(보이는 것)을 결정합니다.

함수 내에서 정의된 변수는 함수 외부에서는 접근할 수 없습니다(보이지 않습니다).

지역 JavaScript 변수가 됩니다.

JavaScript 함수에서 선언된 변수는 함수의지역 변수

지역 변수의 스코프는지역의:함수 내에서만 접근할 수 있습니다.

예제

// 이 코드는 carName 변수를 사용할 수 없습니다.
function myFunction() {
    var carName = "porsche";
    // 이 코드는 carName 변수를 사용할 수 있습니다.
}

직접 시도해보세요

지역 변수는 함수 내에서만 인식될 수 있기 때문에, 다른 함수에서同名 변수를 사용할 수 있습니다.

함수 시작 시에는 지역 변수가 생성되고, 함수가 완료되면 그들은 제거됩니다.

전역 JavaScript 변수가 됩니다.

함수 외에 선언된 변수는전역 변수

전역 변수의 스코프는전역의:웹의 모든 스크립트와 함수가 접근할 수 있습니다.

예제

var carName = "porsche";
// 이 코드는 carName 변수를 사용할 수 있습니다.
function myFunction() {
    // 이 코드는 carName 변수를 사용할 수 있습니다.
}

직접 시도해보세요

JavaScript 변수

JavaScript에서 객체와 함수도 변수입니다.

스코프는 코드의 다른 부분에서 변수, 객체, 함수에 대한 접근성을 결정합니다.

자동 전역

아직 선언되지 않은 변수에 값을 할당하면, 이 변수가 자동으로전역변수。

이 코드는 전역 변수 carName를 선언할 것입니다. 함수 내에서 값을 할당해도 됩니다.

예제

myFunction();
// 이 코드는 carName 변수를 사용할 수 있습니다.
function myFunction() {
    carName = "porsche";
}

직접 시도해보세요

상대적 모드

모든 현대 브라우저는 JavaScript를 “상대적 모드”로 실행할 수 있습니다.

이 강의의 나중 장에서 “상대적 모드”를 사용하는 방법에 대해 더 많이 배울 것입니다.

“상대적 모드”에서는 자동으로 전역 변수가 생성되지 않습니다.

HTML의 전역 변수

JavaScript를 통해 전역 범위는 완전한 JavaScript 환경을 형성합니다.

HTML에서, 전역 범위는 window입니다. 모든 전역 변수는 window 객체에 속합니다.

예제

var carName = "porsche";
// 여기의 코드는 window.carName를 사용할 수 있습니다

직접 시도해보세요

경고

의도적으로 만 아니라는 경우에는 전역 변수를 생성하지 마십시오.

전역 변수(또는 함수)는 window 변수(또는 함수)를 덮을 수 있습니다.

window 객체를 포함한 모든 함수는 전역 변수와 함수를 덮을 수 있습니다.

JavaScript 변수의 유효 기간

JavaScript 변수의 유효 기간은 생성된 시점부터 시작됩니다.

지역 변수는 함수가 완료될 때까지 남아 있습니다.

전역 변수는 페이지를 닫을 때까지 남아 있습니다.

함수 매개변수

함수 매개변수는 함수 내의 지역 변수입니다.