자바스크립트 입문_ 변수선언과 데이터 할당

자바스크립트 2021. 5. 3. 11:56

(본 포스팅은 위키북스의 '코어자바스크립트' 책을 공부하면서 작성되었습니다_내돈내산)

 

// 흔한 변수선언 방법
var a ;

변수선언방법은 우리가 흔히 알고 있는 위와같은 방법으로 진행됨. 하지만 이곳에서는 동작 원리에 대해서 설명해보고자 함.

 

  • 위의 말을 말로 풀어썼을 경우 "변할수 있는 데이터를 만든다. 이데이터의 식별자는 a로 한다" 가 될 수 있다.
  • 바꿔말하면 변수란 >> 변경가능한 데이터가 담길 수 있는 공간 또는 그릇
주소  .... 1002 1003 1004 1005 ......
데이터     이름: a
값: 
     
  • 위의 변수선언은 다음과 같은 형태를 가지게됨(메모리 영역의 변화를 가져옴)
// 데이터 할당
var a; // 변수 a선언
a = 'abc' ; // 변수 a에 데이터 할당

var a = 'abc' ; // 변수 선언과 할당을 한 문장으로 표현
  • 첫번째 두번째처럼 두개로 나누든, 마지막줄처럼 한개로 표현하던 같은 동작을 수행하게 됨.
  • 실제로는 1003 위치에 값을 바로 저장하지 않고 데이터를 저장하기 위한 별도의 메로리 공간을 다시 확보해서 값을 저장한 후 그 주소를 변수영역에 저장하는 식으로 이뤄짐.
주소 .... 1002 1003 1004 1005 ....
데이터     이름 : a
값 : @5004
     
주소 .... 5002 5003 5004 5005 ....
데이터       'abc'    

1) 변수 영역에서 빈공간(@1003)을 확보한다.

2) 확보한 공간의 식별자를 a로 지정한다.

3) 데이터 영역의 빈공간(@5004)에 문자열 'abc'를 저장한다.

4) 변수 영역에서 a라는 식별자를 검색한다(@1003).

5) 앞서 저장한 문자열의 주소를 @1003공간에 대입한다.

 

  • 뭔가 위와같은 귀찮은 작업이 왜 진행되는가.. 데이터의 변환을 자유롭게 할수 있게 하고, 메모리를 효율적으로 관리하기 위한 결과임.
  • 확보한 공간내에서만 데이터 변환이 가능하다면, 변환한 데이터를 다시 저장하기 위해 '확보된 공간을 변환된 데이터 크기에 맞게 조정하는 작업 필요' 
  • 위와같은 작업은 데이터가 메모리 가장 뒤쪽에 있을땐 문제가 되지 않지만, 중간에 있을 경우 저장된데이터의 동반이동 그리고 이동된 주소를 다시 변수값에 연결해야하는 복잡한 작업을 수반하기 때문에 컴퓨터가 처리해야 할 연산량을 늘리는 꼴이 되어버림..!!
  • 이미 데이터 영역에 저장된 데이터를 변경시키려고 할때 ('abc' >> 'abcdef' 처럼) 이미 abc가 저장된공간을변경시키는것이 아니라, 새로운 공간에 abcdef를 만들어 저장하고 그 주소를 새로운 변수공간에 연결함.(어떤 변화를 주던 새로운 공간에 할당시킴)

 

admin