JavaScript Scope
JavaScript에서는 객체와 함수도 변수입니다.
JavaScript에서 범위는 액세스 가능한 변수, 개체 및 함수의 모음입니다.
JavaScript 함수 범위: 함수 내에서 범위가 수정됩니다.
JavaScript에서 var로 선언된 변수에는 실제로 범위가 있습니다.
변수가 함수 본문 내부에 선언된 경우 변수의 범위는 전체 함수 본문이며 변수는 함수 외부에서 참조될 수 없습니다.
'use strict';function foo() {
var x = 1;
x = x + 1;
}
x = x + 2; // ReferenceError! 변수 x는 함수 본문 외부에서 참조할 수 없습니다.
두 개의 다른 함수가 동일한 변수를 선언하면 변수는 다음과 같습니다. 해당 기능 본문에서만 가능합니다. 즉, 서로 다른 함수 내에서 동일한 이름을 가진 변수는 서로 독립적이며 서로 영향을 주지 않습니다.
'use strict';function foo() {
var x = 1;
x = x + 1;
}function bar() {
var x = 'A';
x = x + 'B';
}
JavaScript 로컬 범위
변수는 함수 내에서 선언되며 변수는 로컬 범위입니다.
로컬 변수: 함수 내부에서만 접근할 수 있습니다.
// 여기서 carName 변수를 호출할 수 없습니다.
function myFunction() {
var carName = "Volvo";
// carName 변수는 함수 내에서 호출할 수 있습니다.
}
참고:
지역 변수는 함수 내에서만 작동하므로 다른 함수에서 동일한 이름의 변수를 사용할 수 있습니다.
로컬 변수는 함수가 실행되기 시작할 때 생성되며, 함수가 실행된 후 자동으로 소멸됩니다.
글로벌 범위
함수 내에서 정의되지 않은 변수는 전역 범위를 갖습니다. 실제로 JavaScript에는 기본적으로 전역 개체 창이 있으며 전역 범위의 변수는 실제로 창 속성에 바인딩됩니다.
'use strict';
varcourse = 'Learn JavaScript';
alert(course); // 'JavaScript 배우기'
alert(window.course); // 'JavaScript 배우기'
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <p>全局变量在任何脚本和函数内均可访问。</p> <p id="demo"></p> <script> var carName = "Volvo"; myFunction(); function myFunction() { document.getElementById("demo").innerHTML = "这里是 " + carName; } </script> </body> </html>JavaScript 변수 수명주기JavaScript 변수 수명주기는 선언과 동시에 초기화됩니다. 로컬 변수는 함수가 실행된 후 소멸됩니다. 전역 변수는 페이지가 닫힌 후 삭제됩니다.
함수 매개변수
함수 매개변수는 함수 내에서만 작동하며 지역 변수입니다.