데이터 타입 (1)

Sungw__k·2023년 12월 24일

자바스크립트는 7개의 데이터 타입을 제공한다. 이는 6개의 원시 타입과 하나의 객체 타입으로 분류된다.

  • 원시 타입

    • 숫자(number) 타입 : 숫자, 정수와 실수 구분 없이 하나의 숫자 타입만 존재
    • 문자열(strung) 타입 : 문자열
    • 불리언(boolean) 타입 : 논리적 참(true)와 거짓(false)
    • undefined 타입 : var 키워드로 선언된 변수에 암묵적으로 할당되는 값
    • null 타입 : 값이 없다는 것을 의도적으로 명시할 때 사용하는 값
    • 심벌(symbol) 타입 : ES6에 추가된 7번째 타입

  • 객체 타입 : 객체, 함수, 배열 등



💡 6.1 숫자 타입

자바스크립트에서 숫자 타입은 정수, 실수를 구분하지 않고 모든 수를 실수로 처리한다. 따라서 정수로 표시되는 수끼리 나누더라도 실수가 나올 수 있다.

typeof 10; // number
typeof 10.1; // number
typeof -12; // number

console.log(1 === 1.0); // true
console.log(3 / 2); // 1.5

숫자 타입에는 Infinity, -Infinity, NaN과 같은 특별한 값도 표현할 수 있다.

console.log(10 / 0); // Infinity >> 양의 무한대
console.log(10 / -0); // -Infinity >> 음의 무한대
console.log(1 * 'string'); // NaN >> 산술 연산 불가(Not a Number)



💡 6.2 문자열 타입

문자열 타입텍스트 데이터를 나타나는 데 사용한다. 문자열은 0개 이상의 16비트 유니코드 문자의 집합으로 전 세계 대부분의 문자를 표현할 수 있다.

문자열은 작은따옴표(''), 큰따옴표(""), 벡틱(``)으로 텍스트를 감싼다.

var string;

// 아래 모두 문자열
string = '문자열';
string = '문자열';
string = `문자열`;



💡 6.3 템플릿 리터럴

일반 문자열 내에서는 줄바꿈(개행)이나 표현식 삽입 등이 혀용되지 않는다. 이를 보완한 문자열 표기법이 템플릿 리터럴이다. 템플릿 리터럴은 멀티라인 문자열, 표현식 삽입, 태그드 템플릿 등 편리한 문자열 처리 기능을 제공한다.

템플릿 리터럴은 백틱(``)을 사용해 표현한다.


6.3.1 멀티라인 문자열

//멀티라인 문자열
var template = `<ul>
  <li><a href="#">Home</a></li>
</ul>`;

console.log(template);

출력 결과는 다음과 같다.

<ul>
  <li><a href="#">Home</a></li>
</ul>

6.3.2 표현식 삽입

표현식을 ${ }로 감싸면 템플릿 리터럴 내에서 사용할 수 있다.

//표현식 삽입
console.log(`1 + 2 = ${1 + 2}`); // 1 + 2 = 3



💡 6.4 불리언 타입

불리언 타입의 값은 true(참), false(거짓) 두가지를 말한다. 이는 참과 거짓으로 구분되는 조건에 의해 프로그램의 흐름을 제어하는 조건문에서 자주 사용된다.



💡 6.5 undefined 타입

undefined 타입은 undefined 값만 존재한다.

var 키워드로 선언하는 변수는 암묵적으로 undefined로 초기화된다. 즉 선언한 이후 값을 할당하지 않은 변수를 참조하면 undefined가 반환된다. 이는 자바스크립트 엔진이 수행하며, 개발자가 의도적으로 변수에 할당하는 것은 권장하지 않는다.



💡 6.6 null 타입

프로그래밍 언어에서 null은 변수에 값이 없음을 명시할 때 사용한다. 이를 이용해 이전에 변수에 할당되어 있던 값에 대한 참조를 제거할 수 있고, 자바스크립트 엔진은 해당 메모리 공간에 대해 가비지 콜렉션을 수행한다.

var foo = 'Lee';

// 이전 참조를 제거, foo 변수는 더 이상 'Lee'를 참조하지 않는다.
foo = null;

함수가 유효한 값을 반환할 수 없는 경우 명시적으로 null을 반환하기도 한다.



💡 6.7 심벌 타입

심벌 타입은 다른 값과 중복되지 않는 유일무이한 값을 가진다. 따라서 충돌할 위험이 없는 객체의 유일한 프로퍼티 키를 만들기 위해 사용한다.

심벌은 Symbol 함수를 호출해 생성한다.

var key = Symbol('key');
console.log(typeof key); // symbol

var obj = {};

// 이름이 충돌할 위험이 없는 유일무이한 값인 심벌을 프로퍼티 키로 사용
obj[key] = 'value';
console.log(obj[key]); // value



0개의 댓글