[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
Author And Source
이 문제에 관하여([TIL-js]Data types), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sgr2134/TIL-jsData-types저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)