• 프로그래밍은 변수를 통해 값을 저장하고 참조한다. • 변수는 값의 위치(주소)를 기억하는 저장소이며. 값의 위치란 값이 위치하고 있는 메모리 상의 주소(address)를 의미힌다. • 즉, 변수란 값이 위치하고 있는 메모리 주소(Memory address)에 접근하기 위해 사람이 이해할 수 있는 언어로 명명한 식별자(identifier)이다. 변수 선언과 할당의 구조 • 메모리에 값을 저장하기 위해서는 먼저 메모리 공간을 확보해야 할 메모리의 크기(byte)를 알아야한다. 이는 값의 종류에 따라 확보해야 할 메모리의 크기가 다르기 때문이다. 이때 값의 종류, 즉 데이터의 종류를 데이터 타입(Data Type)이라 한다. • 정적 타입(Static/Strong Type) 언어 : C나 Java와 같은 C-family 언어이며, 변수 선언시 변수에 저장할 값의 종류를 사전에 타입 지정(Type annotation) 해줘야 한다. • 동적 타입(Dynamic/Weak Type) 언어 : 자바스크립트. 변수의 타입 지정(Type annotation) 없이 값이 할당되는 과정에서 자동으로 변수의 타입이 결정(타입 추론, Type Inference)가 된다. 즉, 변수는 고정된 타입이 없다. 따라서 같은 변수에 여러 타입의 값을 자유롭게 할당할 수 있다. • 데이터 타입(Data Type) :프로그래밍 언어에서 사용할 수 있는 데이터(숫자, 문자열, 불리언 등)의 종류. 데이터를 메모리에 저장할 때 확보해야 하는 메모리 공간의 크기와 할당할 수 있는 유효한 값에 대한 정보, 그리고 메모리에 저장되어 있는 2진수 데이터를 어떻게 해석할 지에 대한 정보를 컴퓨터와 개발자에게 제공한다.
📕 책에 대한 질문 : Undefined가 어디에 사용되는지 궁금하다
참고 블로그 링크(위와 동일한 페이지에 내용 존재)
undefined의 타입의 값은 undefined이며, 선언은 되어있지만 값이 할당되어 있지 않은 변수가 undefined의 값을 가진다.
변수 선언에 의해 확보된 메모리 공간을 처음 할당이 이루어질 때까지 빈상태(대부분 비어있지 않고 쓰레기 값(Garbage value)이 들어있다)로 내버려두지 않고 자바스크립트 엔진이 undefined로 초기화한다.
undefined는 자바스크립트 엔진이 할당해주는 값이고, 개발자는 마음대로 할당하는 것을 권장하지 않는다.
💡 추가로 배운 내용
🤣 재밌는 실험 결과 : 만약 자바 스크립트에 "b"+"a"+ +"n"+"a" 문장을 입력하면 결과가 어떻게 될까 ?