본문 바로가기
Programming/JavaScript

JavaScript 기초 문법 #4 함수 스코프, 전역변수 문제점

by 하하호호 2021. 10. 20.
반응형

 

 

 

 

 

# 자바스크립트 스코프

함수 스코프를 결정하는 방법은 두가지다.

1. 함수 호출시점

2. 함수 정의시점

자바스크립트에서는

함수 정의시점에 따라 상위 스코프를 결정한다.

함수가 호출된 위치는 상위 스코프 결정에 어떤

영향도 주지 않는다. 함수의 상위 스코프는

언제나 자신이 정의된 스코프다.

 

# 전역 변수

전역 변수의 무분별한 사용은 위험하다.

변수값이 변경되면서 프로그램 전체가

무너질 수 있기 때문이다.

 

모든 변수는 생명주기가 있다.

생성되어 메모리 공간을 점유하고,

변수가 소멸되면서 메모리 공간을

반납하는 주기가 있다.

 

전역 변수의 경우 자바스크립트 엔진에

의해 먼저 실행되어 undefined로 정의

되지만,

 

지역변수

지역 변수의 생명 주기는 함수의 생명주기와

정확히 일치한다. 

 

변수의 생명 주기는 메모리 공간이 확보된

시점부터 메모리 공간이 해제되어 가용

메모리 풀이 반환되는 시점까지다.

 

전역변수

var 키워드로 선언한 지역변수는 전역 객체의

프로퍼티가 된다. 

브라우저환경에서 전역객체는 window이므로

브라우저 환경에서 var 키워드로 선언한 전역

변수는 전역 객체 window의 프로퍼티다.

 

var 키워드로 선언한 전역 변수의 생명 주기는

전역객체의 생명주기와 일치한다. 

 

변수의 무분별한 사용

변수 스코프는 좁으면 좁을 수록 좋다.

 

캡슐화

캡슐화  cencapsulation은 객체의 상태를

나타내는 프로퍼티와 프로퍼티를 참조하고 

조작할 수 있는 동작인 메서드를 하나로 

묶는 것을 말한다. 

 

대부분의 객체지향 언어는

public, private, protected 키워드로

공개 범위를 제한할 수 있다. 

 

ES6 모듈

ES6모듈을 사용하면 var 키워드로

더는 전역변수를 사용할 수 없다.

 

 

 

 

 

 

반응형

댓글