DeepDive 2회독 - 4장 변수

JungHanMa·2023년 9월 18일
0

Javascript

목록 보기
6/9

4장 변수

식별자

메모리 주소가 저장된 이름을 식별자라고 부르고, 자바스크립트 엔진은 실행컨텍스트를 통해 식별자와 스코프를 관리한다.
선언하지 않은 식별자에 접근하면 레퍼런스(ReferenceError) 에러!
하지만 var로 선언한 변수들은 undefined로 초기화 하기떄문에 레퍼런스 에러가 뜨지 않는다.

호이스팅

호이스팅 : 변수 선언이 소스코드가 한 줄씩 실행되는 시점,즉 런타임이 아니라 그 이전 단계에서 (평가단계) 먼저 실행되기 때문에
소스코드의 위치와 상관없이 어디서든지 변수를 참조할 수 있다.

var value; // 선언, 초기화
value = 80; // 할당
변수 선언은 평가시점, 값의 할당은 런타임

값의 재할당

var,let : 변수 : 값을 재할당 가능
const : 상수 : 재할당 불가능

값의 재할당은 기존의 메모리 공간을 지우고 재할당 하는 것이 아니라 새로운 메모리 공간을 확보하고 그 공간에 숫자값을 저장한다.

가비지콜렉터 : 애플리케이션이 할당한 메모리 공간을 주기적으로 검사하여 더 이상 사용되지 않는 메모리를 해제하는 기능 (값을 재할당을 진행했다면, 그 이전에 사용하던 불필요한 값은 가비지콜렉터에 의해 메모리에서 자동 해제된다)

언매니지드 언어: 개발자가 메모리 관리는 하는 것
매니지드 언어: 메모리의 할당 및 해제를 언어 차원에서 하는 것

네이밍 컨벤션

var firstName : 카멜 케이스
var first_name : 스네이크 케이스
var FirstName : 파스칼 케이스
var $elem (DOM Node) : 헝가리안 케이스

변수, 함수 : 카멜케이스
생성자, 클래스 : 파스칼

따라서 코드전체의 가독성을 높이기 위해서 카멜케이스와 파스칼 케이스를 따르는 것이 유리하다.

profile
Frontend Junior

0개의 댓글