[Javascript] 변수 이해하기

GyungHo Go·2020년 5월 9일
0
post-thumbnail

변수는 모든 프로그래밍 언어를 배울때 가장 먼저 접하는 개념이다. 보통 언어는 특정 데이터 타입을 가지고 있다. int, str, date등 해당 데이터 타입으로 데이터를 설정하는 방법이 있지만 자바스크립트는 느슨한 데이터 타입(Loosly date type)이기에 모든 데이터 타입을 var로 지정 할 수 있다.

전역변수 or 지역변수

변수를 가장 처음 접하면 만나게 되는 부분이 전역변수냐 지역변수냐이 문제이다. 즉, 코드의 어떤 부분에서든 접근하게 해줄것이냐 아니면 필요한 부분에서만 사용할 것인지 결정하는 부분이다.

프로그램 상에서 변수의 활용범위는 전역변수>지역변수 이지만 변수의 영향력은 전역변수 < 지역번수 이다. 전역변수보다 지역변수가 우선순위를 높게 가지게 된다.

전역변수 (Global variable)

전역변수는 함수 외부에서 선언된 변수로, 프로그램 전체에 접근할 수 있는 변수이다.

var name = 'john';
function nameFunc(){
    var name = 'jin';
}
console.log(name);

변수 name의 값을 함수 외부에서는 john으로, 함수 내부에서는 jin 으로 정했다. 함수 외부에서 name을 불러왔으므로 전역변수의 값이 출력된다.

result -> 'john'

지역함수 (Local variable)

지역함수는 함수 내부에서 선언된 변수로 함수 내부에서만 사용하겠다는 의미의 변수이다. 단순히 함수 내부에서만 사용하는 변수 이다 보니 프록램 전체 로직에 영향을 주지 않는다. 해당 함수의 로직에만 영향을 준다. 함수가 실행되면 만들어지고, 함수가 종료되면 소멸하는 함수이다. 함수 외부에서는 접근 할 수 없다.

var name = 'john';
function nameFunc(){
    var name = 'jin';
    console.log(name);
}
nameFunc();

result -> 'jin'

변수의 선언에 있어서 명심해야 할 부분은 '변수의 선언=메모리' 라는 개념이다. 쓸데 없이 변수의 선언은 피하는게 좋다.
그리고 무엇보다 중요한 부분은 전역변수를 함수의 여러곳에서 접근하다 보면 의도치 않게 값이 변경되어 원하는 결과를 얻지 못하는 경우가 있다. 항상 전역 스코프는 깔끔하게 유지해 주는 것이 좋다.

참고
https://yubylab.tistory.com/entry/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EB%B3%80%EC%88%98%EB%A1%9C-%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0

profile
기록하는 습관

0개의 댓글