본문 바로가기
카테고리 없음

[Javascript] 타입을 체크하는 아주 다양한 방법에 대해 알아보자!!

by 쓸있쏜 2024. 12. 5.

JavaScript에서 타입을 체크하는 아주 다양한 방법들!

안녕, 개발자 여러분~ 오늘은 JavaScript에서 타입 체크에 대해 이야기해 볼 거예요! 듣기만 해도 머리가 아프다고요? 아니~ 아니~ 오늘은 복잡한 이야기는 잠시 미뤄두고, 아주 쉽게! 그리고 재미있게! 설명할 테니 걱정 마세요. 마치 초콜릿 케이크 한 조각 먹는 것처럼 말이죠. 🍰


타입 체크는 왜 중요할까?

우리 JavaScript 친구는 "다재다능"하잖아요. 숫자를 문자열로 바꾸기도 하고, 갑자기 undefined로 변신하기도 하죠. 그래서 타입을 제대로 확인하지 않으면... 우당탕탕! 예상치 못한 버그들이 우리를 기다립니다. 😱

자, 이제 본격적으로 타입 체크의 세계로 떠나볼까요?


1️⃣ typeof 연산자 - 간단하지만 가끔은 의심스러운 친구

먼저, typeof 연산자를 소개할게요. 정말 간단해요! 값 앞에 typeof를 쓰면, 그 값의 타입을 문자열로 반환해줘요. 믿을 수 있냐고요? 글쎄...🤔

console.log(typeof 123); // "number"
console.log(typeof "안녕"); // "string"
console.log(typeof true); // "boolean"
console.log(typeof {}); // "object"
console.log(typeof null); // ??? "object"?! 😮

어라? 마지막 줄에서 이상한 점 느꼈죠? null은 원래 null 타입이어야 하는데, "object"라니? 이건 JavaScript 태초부터 내려온 아주 오래된 버그랍니다. 귀엽게 넘어가 주세요. 😅


2️⃣ Array.isArray() - 배열인지 확인하기

JavaScript에서는 배열도 "object"로 나와요. 어쩌면 서운할 수도 있겠죠? "나도 특별한 존재야!"라고 외치는 배열을 위해 만든 함수가 바로 Array.isArray()예요.

console.log(Array.isArray([1, 2, 3])); // true
console.log(Array.isArray({ a: 1 })); // false

✨Tip: 배열인지 확인할 땐 꼭 Array.isArray()를 사용하세요! 타입 체크 실수 방지에 아주 좋아요.


3️⃣ instanceof 연산자 - 객체 관계를 따져보자

instanceof는 객체가 특정 생성자(constructor)로부터 만들어졌는지 확인하는 데 사용돼요. 말이 어렵다고요? 예제를 보면 금방 이해될 거예요!

const date = new Date();

console.log(date instanceof Date); // true
console.log(date instanceof Object); // true
console.log(date instanceof Array); // false

재밌죠? Date 객체는 Object 객체의 후손(?)이라서 instanceof Object가 true로 나와요. 약간 가계도를 보는 기분이에요. 📜


4️⃣ Object.prototype.toString.call() - 마법처럼 정확한 타입 체크

여기, 진짜 정확한 방법이 있어요. 약간의 주문 같은 코드지만, 쓰면 "아~ 이거지!" 싶은 만족감을 줄 거예요.

console.log(Object.prototype.toString.call(123)); // "[object Number]"
console.log(Object.prototype.toString.call("안녕")); // "[object String]"
console.log(Object.prototype.toString.call(null)); // "[object Null]"
console.log(Object.prototype.toString.call(undefined)); // "[object Undefined]"
console.log(Object.prototype.toString.call([])); // "[object Array]"
console.log(Object.prototype.toString.call({})); // "[object Object]"

오, 이건 정말 정확하죠? 모든 타입을 이렇게 확인하면 JavaScript의 모든 비밀을 파헤칠 수 있을 것 같은 기분이에요. 🕵️‍♀️


5️⃣ 타입이 아닌 값 자체를 검증하기

어떤 경우엔 타입보다 이 중요할 때도 있어요. 예를 들어, 숫자인지 확인할 땐 isNaN이나 Number.isFinite 같은 친구들이 유용하답니다.

console.log(isNaN("123")); // false
console.log(isNaN("안녕")); // true
console.log(Number.isFinite(123)); // true
console.log(Number.isFinite(Infinity)); // false

타입 체크도 중요하지만, 값이 우리가 기대한 범위 안에 있는지 확인하는 것도 잊지 마세요!


정리하며...

오늘은 JavaScript에서 타입을 체크하는 여러 가지 방법을 살펴봤어요. 각자 개성이 강한 도구들이죠? 🙌

  • typeof: 간단하지만 약간의 불완전함.
  • Array.isArray: 배열 확인에는 이만한 친구가 없어요.
  • instanceof: 객체 간의 관계를 알아볼 때 유용!
  • Object.prototype.toString.call: 정확도가 필요한 상황에서 최고.
  • 값 검증: 때론 값 그 자체를 확인하는 것도 중요!

JavaScript라는 친구는 자유롭고 유연해서 가끔은 우리를 혼란스럽게 만들지만, 제대로 알아가면 정말 매력적인 언어예요. 이제 여러분도 타입 체크 마스터! 다음엔 더 재미있는 주제로 돌아올게요. 🤗

 

댓글