728x90
728x90

만약 변수에 값을 할당한 후에 새로운 값을 할당해야 한다면?

재할당 : 현재 변수에 저장된 값을 버리고 새로운 값을 저장하는 것

상수 : 값을 재할당할수 없어서 변수에 저장된 값을 변경할 수 없는 경우 (딱 한번만 할당할 수 있는 변수)

 

💡 var 키워드로 선언한 변수는 선언과 동시에 undefined 로 초기화되기 때문에 엄밀히 말하자면 변수에 처음으로 값을 할당하는 것도 사실은 재할당이다.

🤩 Es6에서 도입된 const 키워드를 사용해 선언한 변수는 재할당이 금지된다

→ Const 키워드를 사용하면 상수를 표현할 수 있다.

변수에 값을 재할당하면 score 변수의 값은 이전 값 80에서 재할당한 값 90을 새롭게 저장하는 것이 아님

→ 새로운 메모리 공간을 확보하고 그 메모리 공간에 숫자 값 90을 저장한다

가비지 콜렉터

애플리케이션이 할당한 메모리 공간을 주기적으로 검사하여 더 이상 사용되지 않는 메모리를 해제하는 기능

→ 어떠한 식별자도 참조하지 않는 메모리 공간을 의미

→ 자바스크립트는 가비지 콜렉터를 내장하고 있는 매니지드 언어로서 가비지 콜렉터를 통해 메모리 누수 방지

→ 메모리에서 언제 해제될지는 예측할 수 없다

언매니지드 언어/ 매니지드 언어

  • 언매니지드 언어 : 개발자가 명시적으로 메모리를 할당하고 해제하기 위해 malloc() / free() 같은 저수준 메모리 제어 기능을 제

→ 메모리 제어를 개발자가 주도할 수 있으므로 개발자의 역량에ㄷ 따라 최적의 성능을 확보할 수 도 있지만 그 반대의 경우 치명적 오류를 생산할 가능성도 있다

  • 매니지드 언어 : 메모리의 할당 및 해제를 위한 메모리 관리 기능을 언어 차원에서 담당하고 개발자의 직접적인 메모리 제어를 허용하지 않는다. 즉, 개발자가 명시적으로 메모리를 할당하고 해제할 수 없다

→ 더이상 안쓰는건 가비지 콜렉터가 가져간다.

728x90
300x250

'2023 공부한것들' 카테고리의 다른 글

[5-1] 용어정리 : 값  (0) 2023.06.30
[4-7] 식별자 네이밍 규칙  (0) 2023.06.30
[4-5] : 값의 할당  (0) 2023.06.30
[4-4] 변수 선언의 실행 시점과 변수 호이스팅  (0) 2023.06.29
[4-3] 변수 선언  (0) 2023.06.28

+ Recent posts