<html lang="ko">
<head>
<meta charset="UTF-8">
<title>JavaScript Function Scope</title>
</head>
<body>
<h1>함수의 유효 범위</h1>
<script>
// x, y를 전역 변수로 선언함.
var x = 10, y = 20;
// sub()를 전역 함수로 선언함.
function sub() {
return x - y; // 전역 변수인 x, y에 접근함.
}
document.write("전역 함수에서 x - y의 값은 " + sub() + "입니다.<br>");
// parentFunc()을 전역 함수로 선언함.
function parentFunc() {
var x = 1, y = 2; // 전역 변수와 같은 이름으로 선언하여 전역 변수의 범위를 제한함.
function add() { // add() 함수는 내부 함수로 선언됨.
return x + y; // 전역 변수가 아닌 지역 변수 x, y에 접근함.
}
return add();
}
document.write("내부 함수에서 x + y의 값은 " + parentFunc() + "입니다.<br>");
</script>
</body>
</html>