자바스크립트 범위LOGIN

자바스크립트 범위

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 배우기'

따라서 전역변수 강좌에 직접 접근하는 것은 window.course에 접근하는 것과 똑같습니다. .

<!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 변수 수명주기는 선언과 동시에 초기화됩니다.

로컬 변수는 함수가 실행된 후 소멸됩니다.

전역 변수는 페이지가 닫힌 후 삭제됩니다.

함수 매개변수

함수 매개변수는 함수 내에서만 작동하며 지역 변수입니다.


다음 섹션

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> <script type="text/javascript"> var a =1; function test(){ alert(a); //a为undefined! 这个a并不是全局变量,这是因为在function scope里已经声明了(函数体倒数第4行)一个重名的局部变量, //所以全局变量a被覆盖了,这说明了Javascript在执行前会对整个脚本文件的定义部分做完整分析,所以在函数test()执行前, //函数体中的变量a就被指向内部的局部变量.而不是指向外部的全局变量. 但这时a只有声明,还没赋值,所以输出undefined。 a=4 alert(a); //a为4,没悬念了吧? 这里的a还是局部变量哦! var a; //局部变量a在这行声明 alert(a); //a还是为4,这是因为之前已把4赋给a了 } test(); alert(a); //a为1,这里并不在function scope内,a的值为全局变量的值 </script> </head> <body> </body> </html>
코스웨어