프로그래밍에서 데이터는 다양한 형태와 종류로 나타낼 수 있습니다. 데이터 타입은 이러한 데이터의 특성과 처리 방법을 정의합니다. 이번 포스팅에서는 데이터 타입을 크게 두 가지로 나눠 설명하겠습니다: 원시 타입과 객체 타입.
✏️ 원시 타입은 데이터를 단일 값으로 나타내는 가장 기본적인 데이터 타입입니다. 이들은 불변하며, 메모리에 직접 값을 저장합니다.
숫자 데이터 타입은 정수와 실수를 포함합니다.
let integerNumber = 42;
let floatingPointNumber = 3.14;
문자열은 텍스트 데이터를 나타냅니다. 문자열은 작은 따옴표('')나 큰 따옴표("")로 묶어서 표현합니다.
let greeting = "Hello, World!";
3.1. 일반 리터럴 (Literal):
42 (정수 리터럴), "Hello" (문자열 리터럴), True (불리언 리터럴).3.2. 템플릿 리터럴 (Template Literal):
`Hello, ${name}!`멀티라인 문자열 과 표현식 삽입 을 가능하게 합니다.✏️ 멀티라인 문자열
템플릿 리터럴을 사용하면 여러 줄에 걸친 문자열을 표현할 때 더 간편하게 사용할 수 있습니다. 기존의 문자열에서는 줄 바꿈을 나타내기 위해 백슬래시(\n)를 사용해야 했지만, 템플릿 리터럴에서는 그런 번거로움이 없습니다.
const multiLineString = `
첫 번째 줄
두 번째 줄
세 번째 줄
`;
console.log(multiLineString);
위의 예제에서처럼 백틱(`)으로 문자열을 감싸면 자동으로 줄 바꿈이 적용되어 멀티라인 문자열을 만들 수 있습니다.
✏️ 표현식 삽입
템플릿 리터럴은 변수나 표현식을 문자열 안에 삽입할 수 있는 기능을 제공합니다. ${} 안에 변수나 표현식을 넣으면 해당 부분이 실제 값으로 치환됩니다.
const name = "Chloe";
const greeting = `안녕하세요, ${name}님!`;
console.log(greeting);
위의 예제에서 ${name}은 변수 name의 값으로 치환되어 최종적으로 "안녕하세요, Chloe님!"이라는 문자열이 만들어집니다.
💡 간단하게 말하면, 일반 리터럴은 값 표현에 중점을 두고, 템플릿 리터럴은 문자열을 다룰 때 좀 더 유연하게 변수를 사용할 수 있는 특별한 형태입니다.
불리언 데이터 타입은 true 또는 false 값만을 가집니다. 주로 조건문에서 사용됩니다.
let isJavaScriptFun = true;
null과 undefined는 값이 없음을 나타내는 특별한 원시 타입입니다.
null: 명시적으로 값이 없음을 나타냅니다.undefined: 암시적으로 값이 할당되지 않았음을 나타냅니다.undefined로 초기화된다.심볼(Symbol)은 자바스크립트에서 특별한 종류의 값으로, 주로 객체 속성의 이름(키)으로 사용됩니다. 여기서 '특별한'이라 함은 각각의 심볼 값이 서로 다르고 유일하다는 것을 의미합니다. 즉, 한 심볼 값은 다른 심볼 값과 완전히 다릅니다.
const user = {
[Symbol("username")]: "john_doe",
age: 25,
};
→ 여기서 [Symbol("username")]은 'username'이라는 고유한 주소를 갖는 심볼입니다.
💡 자바스크립트를 이루고 있는 거의 모든 것이 객체인만큼 원시 타입 이외의 값은 모두 객체 타입입니다.
✏️ 객체 타입은 여러 개의 값을 하나의 변수에 저장할 수 있는 자료구조를 나타냅니다. 여러 속성과 메서드를 포함할 수 있습니다.
length 속성을 사용해 배열의 길이를 확인할 수 있습니다.let numbers = [1, 2, 3, 4, 5];
let person = {
name: "John",
age: 30,
isStudent: false
};
()를 사용합니다.typeof를 사용합니다.function add(a, b) {
return a + b;
}
그렇다면, 데이터 타입은 왜 필요할까요?
💡 간단하게 말하면, 데이터 타입은 메모리에 저장하고 읽어오며, 올바르게 이해하고 처리하기 위해 필요합니다.
typeof를 사용하여 데이터의 타입을 확인할 수 있습니다.typeof로만으로는 명확히 구분이 어려울 수 있습니다.Object.prototype.toString.call()을 사용하여 타입을 더 정확하게 확인할 수 있습니다.📌 참고: [ 모던 자바스크립트 ]