English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
변수의 범위는 변수가 정의된 프로그램의 区域입니다.
JavaScript 변수는 두 가지 범위만 가집니다:
지역 범위
전역 범위
범위는 변수의 접근성(보이써)을 결정합니다.
함수에서 선언된 변수는LOCAL(지역) 범위, 이는 함수 외부에서 호출하거나 처리할 수 없음을 의미합니다.
// 여기의 코드는 cityName를 사용할 수 없습니다. function myFunc() { var cityName = "New Delhi"; // 여기의 코드는 cityName를 사용할 수 있습니다. } // 여기의 코드는 cityName를 사용할 수 없습니다.테스트를 보자‹/›
지역 변수는 함수 범위를 가지고 있으며, 함수 내부에서만 접근할 수 있습니다.
지역 변수는 함수 내부에서만 인식될 수 있으므로, 다른 함수에서 같은 이름의 변수를 사용할 수 있습니다.
함수가 시작할 때 지역 변수를 생성하고, 함수가 완료될 때 지역 변수를 제거합니다.
함수 외부의 프로그램에서 선언된 변수는GLOBAL범위, 이는 모든 스크립트가 이를 사용할 수 있음을 의미하며, 스크립트가 함수 내부인지 외부인지와 관계없습니다.
// 전역 변수를 초기화 var cityName = "New Delhi"; // 여기의 코드는 cityName를 사용할 수 있습니다. function myFunc() { // 여기의 코드도 cityName를 사용할 수 있습니다. } // 여기의 코드는 cityName를 사용할 수 있습니다.테스트를 보자‹/›
JavaScript 프로그램의 어느 위치에서도 전역 변수에 접근할 수 있습니다.
아래의 예제에서는 전역 변수를 생성하겠습니다. cityName변수. 함수 내부는 같은 이름을 가진 지역 변수입니다.
// 전역 변수를 초기화 var cityName = "New Delhi"; function myFunc() { //지역, 함수 범위 내의 변수를 초기화 var cityName = "Jaipur"; document.writeln(cityName); } //전역 변수와 지역 변수를 출력 document.writeln(cityName); myFunc(); document.writeln(cityName);테스트를 보자‹/›
변수의 값은 범위에 따라 다를 수 있고 원래 값은 변경되지 않습니다. 이를 통해 변수의 값을 출력하여 보여줄 수 있습니다.
아직 선언되지 않은 변수에 값을 할당하면 그 자체로GLOBAL(전역)변수.
이 예제는 전역 변수를 선언합니다cityName함수 내부에 값이 할당되어도 그렇습니다.
myFunc(); // 여기의 코드는 cityName를 사용할 수 있습니다. function myFunc() { cityName = "New Delhi"; }테스트를 보자‹/›
필요하지 않으면 전역 변수를 쉽게 생성하지 마세요.
전역 변수는 창 변수를 덮칠 수 있습니다.
모든 함수, window 객체 포함, GLOBAL 변수를 덮을 수 있습니다.
JavaScript는 변수를 선언하는 데 사용되는 세 가지 다른 키워드를 가지고 있으며, 이는 언어에 복잡성을 더합니다.
두 키워드 사이의 차이는 범위, 提升, 재할당에 기반합니다.
키워드 | 범위 | 的提升 | 재할당할 수 있습니다 | 재선언할 수 있습니다 |
---|---|---|---|---|
var | 함수 범위 | 네 | 네 | 네 |
let | 블록 범위 | 아니요 | 네 | 아니요 |
const | 블록 범위 | 아니요 | 아니요 | 아니요 |
사용하여var키워드 선언된 변수는 블록 범위를 가질 수 없습니다.
블록 외부에서 접근할 수 있는 변수는 블록 내에서 선언된 변수입니다:
{ var num = 50; } // num은 여기서 사용할 수 있습니다
사용하여let키워드 선언된 변수는 '블록 범위'를 가질 수 있습니다.
블록 내에서 선언된 변수는 블록 외부에서 접근할 수 없습니다:
{ let num = 50; } // num은 여기서 사용할 수 없습니다
변수를 선언하려면 const와let블록 범위와 유사합니다.
{ const num = 50; } // num은 여기서 사용할 수 없습니다
상수의 값을 재할당할 수 없으며, 재선언도 할 수 없습니다。
JavaScript 변수의 생명주기는 선언에서 시작됩니다。
함수가 완료되면, 삭제됩니다지역변수.
브라우저 창을 닫을 때전역변수는 삭제될 것이지만, 동일한 창에 로드된 새 페이지에서는 여전히 사용할 수 있습니다。