[TIL-js]Data types

Javascript는 크게 8가지의 자료형이 있다. 여기서 변수는 자료형에 상관없이 모든 데이터가 들어갈 수 잇다. 예를 들면 어떤 순간은 문자열을 넣기도 하고 또 다른 순간엔 숫자를 넣는 식이다.
=>이처럼 자료의 타입은 있으나 변수에 저장되는 값의 타입을 언제들 바꿀 수 있는 Javascript을 동적타입언어(Dynamically typed language)라고 한다.

숫자형

  • 정수 및 소숫점의 숫자를 표현한다.
  • *(곱셈), /(나눗셈),+(덧셈),-(뺄셈) 등의 일반적인 사칙연산이 가능하다.
  • 일반적인 숫자 외에 Infinity(무한대의 값), -Infinity(-의 무한대 값), NaN(not a number) 같은 특수한 숫자의 값도 포함된다. (여기서 NaN은 일종의 오류라고 봐도 되는데 문자열을 숫자로 나눈다거나 할 때 오류가 발생하면 이런식으로 표시된다.)

bigInt

이때 나타낼 수 있는 안정적인 수는 -(2^53-1)~2^53-1까지이다. 만약 이보다 크거나 작은 수를 나타내고 싶다면 나타내고 싶은 수 뒤에 n을 붙여 나타낼 수 있다.

const bigInt= 123456789n;

하지만 호환할 수 있는 브라우저가 많지 않다. (Firefox, Chrome, Edge정도 safari와 IE에서는 작동이 안됨)

문자형(String)

  • Javascript에서 문자형은 ""(쌍따옴표)로 묶는다.
  • 사실 ""(큰따옴표)와 ''(작은따옴표)는 똑같이 쓰이지만 ``(역따옴표)는 조금 다른 역할을 한다.
  • `` 이 역따옴표는 변수나 표현식을 감싼 후 ${}안에 원하는 변수나 표현식을 문자열 중간에 손쉽게 넣을 수 있다
예
let name = "garam";
console.log(`Hello ${name}!`); => 1) Hello garam!
console.log(`Hello ${"name"}!`); => 2) Hello name!

1) 의 경우 ${}안에 있는 name 변수의 값을 받아와 Hello garam이라고 출력되지만,
2)의 경우엔 ${}안의 "name"이라는 문자형 값을 그대로 받아오기에 Hello name!이라고 출력된다.

불리언(Boolean)

  • True/False로 표현이 된다.
  • False 값으로는 0, null, undefined, NaN, ""(empty string)등이 있고 이외의 나머지 값은 True로 표현된다.

null

  • 명확히 '너는 아무것도 아닌 빈값이야!'라고 지정하는 것
  • Javascript에서 null값은 다른 언어의 null과 성격이 다름
  • 다른아이에서 null은 존재하지 않는 객체에 대한 참조나 null pointer를 나타낼 때 사용하지만 js에서는 존재하지 않는, 비어있는 알 수없는 값을 나타낸다.

undifiend

  • undefined도 null처럼 자신만의 자료형을 생성하지만, 값이 할당되지 않은 상태를 나타낼 때 사용한다.
  • 따라서 변수를 선언했으나 값이 할당되지 않으면 undefined가 자동으로 할당된다.
    (이 때 개발자가 변수에 undefined를 직접 할당할 수 도 있으나, 그렇게 하는것보다 비어있거나 알 수 없는 값은 null을 쓰는게 낫다!)

object & symbol

  • object는 특수한 자료형으로 object(객체형)을 제외한 다른 자료형은 문자열이든 숫자든 하나만 표현할 수 있기에 primitive(원시형)이라고 부른다
  • 하지만 object는 데이터의 모음이나 복잡한 개체도 표현 가능하다.
  • symbol은 객체의 고유한 식별자를 만들 때 사용된다.

▶참고자료
유튜브 드림코딩: https://youtu.be/OCCpGh4ujb8
모던 자바스크립트: https://ko.javascript.info/types

좋은 웹페이지 즐겨찾기