데이터 타입과 typeof 연산자

지은·2022년 8월 22일
1

JavaScript

목록 보기
2/42
post-custom-banner

typeof : 값의 타입을 확인할 수 있는 연산자

데이터 타입의 종류

원시 자료형 (primitive type)

  • number
  • string
  • boolean
  • undefined
  • symbol
  • null

참조 자료형 (reference type)

  • 배열
  • 객체
  • 함수

원시 자료형

1. number (숫자)

let pi = 3.141592;
console.log(typeof pi); // number

Number() : 데이터 타입을 숫자로 변환해주는 함수

Number('123'); // 123
Number('abc'); // NaN
Number(true);  // 1
Number(false); // 0

parseFloat() : 실수(Float)로 변환해주는 함수

let pi = '3.141592';
parseFloat(pi); // 3.141592

parseInt() : 정수(Integer)로 변환해주는 함수

let pi = '3.141592';
parseInt(pi); // 3

NaN (Not a Number)

  1. NaN의 type은 숫자형이다.
console.log(typeof NaN);  // number
  1. NaN은 다른 NaN과 일치하지 않고, 자기 자신과도 일치하지 않는다.
console.log(NaN == NaN);  // false
console.log(NaN === NaN); // false
  1. NaN인지 확인하는 방법은 isNaN() 함수를 사용하는 것이다.
console.log(isNaN(NaN)); // true
console.log(isNaN(123)); // false

2. string (문자열)

let myname = 'Jieun';
console.log(typeof myname); // string

String() : 데이터 타입을 문자열로 변환해주는 함수

String(123)  // '123'
String(true) // 'true'

3. boolean (true/false)

let age = 26;
let isAdult = age > 19; // true
console.log(typeof isAdult); // boolean

4. undefined (정의되지 않음)

값을 할당하지 않은 변수는 JavaScript가 임의로 undefined 값을 할당한다.

let idk;
console.log(typeof idk); // undefined

undefined 와 null 의 차이

  • undefined : 값이 할당되지 않은 변수
let a;
console.log(a); // undefined
  • null : 빈 값(null)이 할당된 변수
let b = null;
console.log(b); // null

5. symbol


6. null

값이 할당되어 있지만 비어있는 값, 값의 부재를 의미한다.

데이터 타입이 null인지 아닌지 확인하는 법

typeof null은 null이 아닌 object를 반환하는데, 이는 JavaScript의 오래된 버그라고 한다. 해당 데이터가 null인지 아닌지 구분하고 싶다면 [변수] === null 일치연산자를 이용하면 된다.


참조 자료형

1. array (배열)

let fruits = ['banana', 'apple', 'pineapple'];
console.log(typeof fruits); // object

데이터 타입이 배열인지 아닌지 확인하는 법

typeof [배열]은 array가 아닌 object라는 값을 반환한다.
따라서 해당 데이터가 배열인지 객체인지 구분하기 어려운데, 이 때 Array.isArray() 메소드를 사용하면 배열이면 true, 배열이 아니면 false를 반환한다.


2. object (객체)

let person = {
    name: 'Jieun',
    age: 26,
    isStudent: true,
};
console.log(typeof person); // object

3. function (함수)


비교연산자

== (Loose Equality Operator): 타입과 상관없이 값만 같으면 true를 return
=== (Strict Equality Opreator): 값이 같고, 타입까지 같아야 true를 return하는 엄격한 비교연산자

❔ 학습 후 궁금한 점

  • typeof 배열은 왜 array가 아니라 object를 반환하는지?
  • 배우지 않은 데이터 타입 symbol, null, function은 나중에 여기에 다시 정리하기!
profile
블로그 이전 -> https://janechun.tistory.com
post-custom-banner

1개의 댓글

comment-user-thumbnail
2022년 8월 25일

너무 정리 잘하셔서 댓글 남겨요~~

답글 달기