숫자형
숫자형은 정수와 부동소수점 숫자를 모두 포함합니다. Number 타입 하나로 정수와 실수를 모두 표현합니다.
let a = 1; // 정수
let b = 3.14; // 부동소수점
특수 숫자
- Infinity : 양의 무한대
- -Infinity : 음의 무한대
- NaN(Not a Number) : 산술 연산이 실패할 경우
- NaN은 자기 자신과도 같지 않은 유일한 값(NaN !== NaN)
- NaN 여부를 확인할 경우 Number.isNaN() 함수를 사용하여 확인
BigInt
일반적인 숫자형은 범위가 있기 때문에 이 범위를 넘어서는 정수를 표현하기 위한 자료형입니다.
숫자 리터널 뒤에 n을 붙여 BigInt를 생성합니다.
BigInt는 BigInt 끼리만 연산이 가능합니다.
const bigNum = 123n;
문자열
문자열을 만들기 위해서는 3가지 방법으로 표기할 수 있습니다.
- 큰 따옴표 : "hello"
- 작은 따옴표 : 'hello'
- 역 따옴표(백틱) : `hello`
템플릿 리터럴
백틱을 사용한 템플릿 리터럴은 문자열 내에 표현식이나 변수를 ${...} 문법으로 삽입할 수 있습니다.
let a = 1;
let b = 2;
console.log(`sum : ${a + b}`)
불린형
논리적 참과 거짓을 나타냅니다.
다른 자료형을 불린형으로 변환할 때에는 Boolean() 함수를 사용합니다.
Boolean(1) // true
Boolean(0) // false
null
존재하지 않거나 빈 값을 의도적 나타낼 때 사용합니다.
undefined
값이 할당되지 않음을 나타냅니다.
- 변수를 선언 후 초기화하지 않을 경우
- 함수가 명시적 값을 반환하지 않은 경우
심볼(Symbol)
고유하고 변경 불가능한 원시 값으로, 주로 객체의 키로 사용됩니다.
description 프로퍼티를 사용하여 심볼을 생성할 때 전달했던 설명을 가져올 수 있습니다.
let id = Symbol('id')
console.log(id.description) // id 출력
객체
객체는 키 - 값 쌍의 속성을 저장하여 복잡한 데이터를 표현합니다.
const user = {
name : 'lee',
age: 14
}
속성에 접근할 때는 점 표기법이나 대괄호 표기법을 사용합니다.
user.name // 점 표기법
user['age'] // 대괄호 표기법
함수
변수에 할당하거나 다른 함수에 인수로 전달할 수 있습니다.
function greet(name) {
return `Hello, ${name}`;
}
const sayHello = greet
console.log(sayHello('lee')) // Hello, lee 출력
typeof 연산자
피연산자의 자료형을 문자열로 반환합니다.
console.log(typeof 123); // 출력: number
console.log(typeof 'text'); // 출력: string
console.log(typeof true); // 출력: boolean
console.log(typeof undefined); // 출력: undefined
console.log(typeof null); // 출력: object (자바스크립트의 역사적인 오류)
console.log(typeof Symbol()); // 출력: symbol
console.log(typeof { key: 'value' }); // 출력: object
console.log(typeof function() {}); // 출력: function
typeof null은 object로 반환하지만 실제 객체는 아닙니다.
타입 변환
String(), Number(), Boolean()을 이용하여 명시적 변환하는 것이 좋습니다.
정확한 자료형 비교
느슨한 비교(==)는 타입 변환을 수행하므로 엄격한 비교(===)를 이용한 정확한 비교를 하는 것이 좋습니다.
console.log(0 == '0'); // 출력: true
console.log(0 === '0'); // 출력: false
'JavaScript' 카테고리의 다른 글
[JavaScript] 형 변환 (1) | 2025.02.05 |
---|---|
[JavaScript] 브라우저 기본 모달창(alert, prompt, confirm) (0) | 2025.02.05 |
[JavaScript] 변수와 상수 (0) | 2025.02.05 |
[JavaScript] 엄격 모드(Strict Mode) (0) | 2025.02.05 |
[JavaScript] 자바스크립트 코드 구조 (0) | 2025.02.05 |