[모던 자바스크립트 Deep Dive] 6장 데이터 타입

Soyeon·2025년 3월 8일
1

자바스크립트의 원시 타입과 객체 타입

자바스크립트는 7개의 데이터 타입(값의 종류)을 가지며, 원시 타입객체 타입으로 구분된다.

원시 타입: 변경이 불가능한 값
객체 타입: 변경 가능한 값

1️⃣ 숫자

  • 배정밀도 64비트 부동소수점 형식을 따르며, 하나의 숫자 타입만 존재한다 -> 실수
  • 추가적으로 세 가지 특별한 값을 표현할 수 있다.
    • Infinity: 양의 무한대
    • -Infinity: 음의 무한대
    • NaN: Not-a-Number, 산술 연산 불가

2️⃣ 문자열

  • 자바스크립트에서 문자열 연결은 '+'를 사용해 연결할 수 있다.
    하지만 표현식 삽입(expression interpolation) 을 통해 더욱 깔끔하고 쉽게 문자열을 삽입할 수 있다.

    var first = "Lee";
    var last = "Soyeon";
    
    // ES5: 문자열 연결
    console.log("My name is " + first + " " + last + "."); // My name is Lee Soyeon.
    
    // ES6: 표현식 삽입
    console.log(`My name is ${first} ${last}.`); // My name is Lee Soyeon.

3️⃣ 불리언

4️⃣ undefined

  • 초기화되지 않은 변수로, 자바스크립트 엔진이 변수를 초기화할 때 사용하는 값이다.
  • undefined 를 개발자가 의도적으로 변수에 할당한다면 undefined의 본래 취지와 어긋날 뿐더러 혼란을 줄 수 있다. 아무것도 없는 빈 값을 의미할려면 null을 할당해라.

5️⃣ null

  • 변수에 값이 없다는 것을 명시할 때 사용한다.
  • 함수가 유효한 값을 반환할 수 없을 때 null을 반환한다.

6️⃣ 심벌

  • 다른 값과 중복되지 않는 유일무이한 값

7️⃣ 객체

  • 자바스크립트는 객체 기반의 언어

데이터 타입의 필요성

메모리에 값을 저장하려면, 얼마만큼의 메모리 공간이 필요한지 알아야 한다. 자바스크립트 엔진은 값의 종류에 따라 고정된 크기의 메모리 공간을 확보한다.

즉, 데이터 타입에 따라 메모리 공간의 크기가 결정된다.

값을 참조하려면, 값이 저장된 메모리 공간의 주소를 알아야 한다.
그럼, 컴퓨터는 읽어야 할 메모리 공간의 크기를 어떻게 알까? 바로 데이터 타입을 이용해 값을 해석하기 때문이다.

데이터 타입이 필요한 이유는,

  1. 값을 저장할 때, 필요한 메모리 공간의 크기를 결정하기 위해
  2. 값을 참조할 때, 얼마만큼의 메모리를 읽어야 할지 결정하기 위해
  3. 메모리에 저장된 2진수를 어떻게 해석할지 결정하기 위해

동적 타이핑이란

정적 타입 언어 vs 동적 타입 언어

정적 타입 언어는 변수를 선언할 때, 데이터 타입을 먼저 지정해야 한다.
컴파일 시점에 타입을 체크하며, 타입의 일관성을 강제하여 런타임 에러를 줄인다.

자바스크립트는 변수를 선언할 때 타입을 지정하지 않으며 할당된 값에 따라 타입이 자동으로 결정된다.
이후 재할당을 통해 타입이 변경될 수 있다.

이러한 특징을 동적 타이핑이라고 하며, 자바스트립트는 동적 타입 언어이다.

동적 타입 언어의 장단점

  • 장점
    • 변수의 타입을 자유롭게 변경할 수 있어 유연한 코드 작성이 가능하다.
  • 단점
    • 코드의 신뢰성이 낮아질 수 있다.
    • 예기치 않은 타입 변환이 발생할 수 있어 디버깅이 어려워질 수 있다.
변수를 사용할 때 주의할 점은 다음과 같다.

1. 필요한 경우에만 사용하기
2. 변수의 스코프를 최대한 좁게 만들기
3. 전역 변수는 사용하지 않기
4. 변수보다는 상수 사용하기
5. 변수명을 의미 있게 정하기
profile
탄탄한 개발자로 살아남기🗿

0개의 댓글