본문 바로가기

개념 공부

매개변수, 지역변수, 전역변수, 변수선언 (자바스크립트)

매개변수(parameter)란 함수의 정의에서 전달받은 인수를 함수 내부로 전달하기 위해 사용하는 변수를 의미합니다.

인수(argument)란 함수가 호출될 때 함수로 값을 전달해주는 값을 말합니다.

대부분의 함수는 하나 이상의 매개변수를 가지며, 매개변수가 없는 함수도 존재합니다.

 

기본적으로 함수의 인수는 값 전달(passing by value) 방식으로 매개변수로 전달됩니다.

인수를 함수에 전달하면, 새롭게 생성된 매개변수에 전달받은 값이 복사되어 저장됩니다.

이처럼 매개변수에 저장된 값은 전달받은 데이터의 복사본으로, 함수 안에서 변경되어도 함수 밖의 원본 데이터에는 영향을 주지 않습니다.

 

지역 변수(local variable)란 '블록' 내에서 선언된 변수를 의미합니다.

지역 변수는 변수가 선언된 블록 내에서만 유효하며, 블록이 종료되면 메모리에서 사라집니다.

이러한 지역 변수는 메모리상의 스택(stack) 영역에 저장되며, 초기화하지 않으면 의미 없는 값(쓰레기값)으로 초기화됩니다. 함수의 매개변수 또한 함수 내에서 정의되는 지역 변수로 취급됩니다.

 

전역 변수(global variable)란 함수의 외부에서 선언된 변수를 의미합니다.

전역 변수는 프로그램의 어디에서나 접근할 수 있으며, 프로그램이 종료되어야만 메모리에서 사라집니다.

이러한 전역 변수는 메모리상의 데이터(data) 영역에 저장되며, 직접 초기화하지 않아도 0으로 자동 초기화됩니다.

 

전역 변수와 같은 이름의 지역 변수가 함수 내부에서 선언되기 전까지는 함수에서도 전역 변수 var에 접근할 수 있습니다.

하지만 같은 이름의 지역 변수가 선언된 후에는 함수에서 전역 변수로 접근할 방법이 없어집니다.

왜냐하면, 블록 내에서 선언된 지역 변수는 같은 이름의 전역 변수를 덮어쓰기 때문입니다.

 

따라서 이처럼 전역 변수와 같은 이름으로 지역 변수를 선언하는 것은 좋지 않습니다.

'개념 공부' 카테고리의 다른 글

Sass, Less란  (0) 2020.06.17
의사 클래스(가상 클래스)란  (0) 2020.06.17
반응형 디자인의 3요소 : 그리드 레이아웃, 가변형 이미지, 미디어 쿼리  (0) 2020.06.16
Node.js란?  (0) 2020.04.24
PHP란?  (0) 2020.04.24