본문 바로가기
Web/jQuery

[Javascript 기본 개념] Javascript 문법-유효범위(scope)

by 나비와꽃기린 2016. 6. 23.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

1.1  유효범위

-유효범위(Scope)는 변수의 수명을 의미

 

EX)

 

var vscope = 'global';

function fscope(){

alert(vscope);

}

fscope();

 

à 함수 밖에서 변수를 선언하면 그 변수는 전역변수가 된다.

전역변수는 어플리케이션 전역에서 접근이 가능한 변수라 어떤 함수 안에서도 그 변수에 접근 할 수 있다. 

 

EX)

 

var vscope = 'global';

function fscope(){

    var vscope = 'local';

    alert('함수안 '+vscope);

}

fscope();

alert('함수밖 '+vscope);

 

à 지역변수와 전역변수가 동시에 정의되어 있다면 지역변수를 우선시 한다

à 따라서 결과값은 함수안 local’함수밖 global’이다.

 

EX)

 

var vscope = 'global';

function fscope(){

vscope = 'local';

alert('함수안'+vscope);

}

fscope();

alert('함수밖'+vscope);

 

à결과값 함수안 local’함수밖 local’

à 함수 fscope의 지역변수를 선언할 때 var를 사용하지 않았기 때문에vscope가 전역변수가 된다. 따라서 3행은 전역변수의 값을 local로 변경하게 된 것이다.

à여러 가지의 이유로 값이 달라질 수 있기 때문에, 전역변수는 되도록 사용하지 않는 것을 권장함.

 

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());

}())

 

 

JAVASCRIPT

JAVA

for(var i = 0; i < 1; i++){

var name = 'coding everybody';

}

alert(name);

 

à 자바스크립트는 함수에 대한 유효범위만을 제공..따라서 결과는 coding everybody를 출력함

for(int i = 0; i < 10; i++){

String name = "egoing";

}

System.out.println(name);

 

à 자바에서는 아래의 코드는 허용되지 않는다.

Namefor문 안의 지역변수로 선언.