참고> opentutorials.org/course/743/6495
1. 유효 범위 (Scope) : 변수의 수명
- var 을 함수 밖에서 쓰면 전역 변수, 함수 안에서 쓰면 지역 변수
- for문을 함수 밖에서 쓰면 얘도 전역 변수를 선언해버릴 수 있다.
ex) for(var i = 0; i < 5; i++){
a();
document.write(i);
}
2. Javascript에서 불가피하게 전역변수를 사용해야 한다면..
-> 전역 변수를 단 하나만 쓰고, 더 필요한 전역 변수들은 맨 처음에 만든 그 변수 안에서 선언하자.
ex) MYAPP = {}
MYAPP.calculator = {
'left' : null,
'right': null
}
MYAPP.coordinate = {
'left' : null,
'right' : null
}
MYAPP.calculator.left = 10;
MYAPP.calculator.right = 20;
function sum(){
return MYAPP.calculator.left + MYAPP.calculator.right;
}
document.write(sum());
-> 또는 익명 함수안에 지역 변수로 호출하고 이 익명 함수를 바로 호출하면 전역 변수를
하나도 선언하지 않을 수 있음.
ex)(function(){
var MYAPP = {}
MYAPP.calculator = {
'left' : null,
'right' : null
}
MYAPP.coordinate = {
'left' : null,
'right' : null
}
MYAPP.calculator.left = 10;
MYAPP.calculator.right = 20;
function sum(){
return MYAPP.calculator.left + MYAPP.calculator.right;
}
document.write(sum());
}())
3. 정적 유효범위
함수 실행 시 함수 내에서 변수를 참조할 때에는 사용될 때의 유효 범위가 아니라 정의될 때의 유효 범위를 적용한다.
ex)
var i = 5;
function a(){
var i = 10;
b();
}
function b(){
document.write(i);
}
a();
위의 코드에서 b() 함수 내의 i는 자신이 정의될 때의 전역 변수인 '5의 값을 가진 i'를 참조한다.
'Study Memos > JavaScript Basic' 카테고리의 다른 글
클로저 (Section 20) (0) | 2020.10.27 |
---|---|
값으로서의 함수와 콜백 (Section 19) (0) | 2020.10.27 |
함수 지향 (Section 17) (0) | 2020.10.27 |
정규 표현식 (Section 16) (0) | 2020.10.27 |
UI 와 API 그리고 문서보는 법 (Section 15) (0) | 2020.10.27 |