Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- ㅒ
- resttemplate
- 처음 만나는 AI 수학 with Python
- 이터레이터
- 자료구조와 함께 배우는 알고리즘 입문
- 목록처리
- network configuration
- 리눅스
- 코드로배우는스프링부트웹프로젝트
- 페이징
- 처음 만나는 AI수학 with Python
- baeldung
- 데비안
- 코드로배우는스프링웹프로젝트
- 서버설정
- Kernighan의 C언어 프로그래밍
- GIT
- 선형대수
- 구멍가게코딩단
- 네트워크 설정
- 스프링 시큐리티
- 자바편
- 친절한SQL튜닝
- 스프링부트핵심가이드
- 알파회계
- iterator
- 티스토리 쿠키 삭제
- 자료구조와함께배우는알고리즘입문
- /etc/network/interfaces
- d
Archives
- Today
- Total
bright jazz music
자바스크립트에서의 타입 확인 본문
1. 스트링 타입의 타입확인
// 스트링 타입의 타입 확인
if (typeof val === "string" || val instanceof String) {...}
2. 객체 타입의 타입확인
// 순수객체 타입의 타입 확인
if (typeof val === "object" && // 객체 타입인지 확인
val !== null && // null 제외 (typeof null도 "object"이기 때문)
!Array.isArray(val)) // 배열 제외
{
// 순수 객체인 경우의 처리
}
//...
const obj = { name: "Kim" }; // true
const arr = [1, 2, 3]; // false
const null_val = null; // false
const date = new Date(); // true
const regex = /test/; // true
일반적으로는 이 방식을 사용하면 객체 타입을 확인해 낼 수 있다. 그러나 이 방식은 Date, RegExp 등의 내장 객체도 true로 판정된다. 만약 정말 순수한 객체만 판별해 내려면 constructor를 사용해 해당 객체가 순수 객체인지 확인할 수 있다.
if (typeof val === "object" &&
val !== null &&
!Array.isArray(val) &&
val.constructor === Object) // 이 조건이 하나 더 추가되었다.
{
// 순수 객체만 처리
}
val.constructor === Object는 해당 객체가 Object 생성자 함수를 통해 만들어졌는지를 확인하는 것이다.
3. 숫자의 타입 확인
단순히 typeof value === "number"로는 숫자 확인이 끝나지 않는다. NaN도 숫자로 구분하기 때문이다. 따라서 아래와 같은 방법을 사용해 숫자를 판별해 낼 수 있다.
// 방법 1: NaN 체크 추가
if (typeof value === "number" && !isNaN(value)) {
// 진짜 숫자인 경우
}
// 방법 2: Number.isFinite() 사용 (더 엄격한 방법)
if (Number.isFinite(value)) {
// 진짜 숫자이면서 유한한 수인 경우
// Infinity, -Infinity, NaN 모두 제외
}
Number.isFinite(123) // true
Number.isFinite(-1.23) // true
Number.isFinite(0) // true
Number.isFinite(NaN) // false
Number.isFinite(Infinity) // false
Number.isFinite("123") // false (문자열은 자동 변환하지 않음)
'Language > Javascript' 카테고리의 다른 글
자바스크립트의 실행 컨텍스트 (0) | 2024.11.13 |
---|---|
자바스크립트와 메모리 (0) | 2024.11.11 |
자바스크립트 기본 문법 (0) | 2024.02.26 |
이벤트 루프와 비동기 통신 (0) | 2024.01.03 |
클로저(closure) (0) | 2024.01.03 |
Comments