Leeyanggoo
[JS] 자바스크립트의 자료형을 알아보자! 본문
자료형
프로그래밍 언어에는 내장된 여러 가지 형태의 자료 형태(daya type)가 존재하고 그를 자료형이라고 합니다.
자바스크립트의 자료형은 크게 원시 유형과 객체로 구분할 수 있고, 원시 유형은 다시 6가지로 나눠집니다.
먼저 원시 유형의 숫자형부터 차례대로 알아보겠습니다! :)
원시 유형primitive type
원시 유형(원시 값)은 자바스크립트의 기본 타입을 말하며 변형이 불가능한 즉 '불변성'을 지니고 있는 데이터입니다.
원시 유형은 더 이상 단순화할 수 없기 때문에 원시적(primitive)이라고 부릅니다.
let a = 3;
console.log(a); // 3
a = 5;
console.log(a); // 5
언뜻 3이라는 값이 5로 변형했다고 생각할 수 있지만, 데이터 영역에 새로 값 5를 추가하고 a를 이와 연결한 것입니다.
이처럼 원시 유형은 어떤 데이터에 연결될지는 바뀔 수 있지만, 데이터의 값은 바뀌지 않기 때문에 '불변하다'고 합니다.
숫자형Number
자바스크립트는 다른 언어와는 달리 정수와 실수를 따로 구분하지 않고, 모든 수를 실수 하나로만 표현합니다.
또한, 매우 큰 수나 매우 작은 수를 표현할 경우에는 e 표기법을 사용할 수 있습니다.
자바스크립트는 숫자 옆에 'e'를 붙이고 0의 개수를 그 옆에 붙여주는 방식을 사용합니다.
let billion = 1e9; = 1000000000 //1억은 1과 9개의 0으로 표현할 수 있다.
let ms = 1e-6; = 0.000001 //e옆의 -는 왼쪽으로 소수점을 6번 이동한 것으로 표현한 것이다.
let Num = 10; //소수점 X
let NUm = 10.0; //소수점 O
문자열String
자바스크립트에서 문자열은 텍스트 데이터를 의미하며, 큰따옴표("")나 작은따옴표('')로 둘러싸인 문자의 집합입니다.
큰따옴표는 작은따옴표로 둘러싸인 문자열에만 포함될 수 있으며, 작은따옴표는 큰따옴표로 둘러싸인 문자열에만 포함될 수 있습니다.
let T1 = "이건 텍스트 데이터입니다."
let T2 = "10" // 숫자에도 따음표를 붙이면 문자로서의 "10"을 의미합니다.
논리형Boolean
'불리언'이라고 불리는 논리형은 참(true)과 거짓(false)을 표현합니다.
논리형은 다양한 조건문이나 반복문과 함께 사용하는 경우가 많습니다.
let z = 10;
let y = 20;
console.log(z < y); //true
console.log(z > y); //false
심벌symbol
심벌의 가장 큰 특징은 '유일성'을 보장한다는 점입니다.
let x = Symbol();
let y = Symbol();
x === y //false
그래서 언뜻 보면 같아 보이는 x와 y도 심벌은 유일한 값이기 때문에 같지 않습니다.
그래서 심벌은 여러 소스를 가져와 작업하는 경우 중복되는 키의 이름이 있을 때 유용하게 쓸 수 있습니다.
undefined
undefined는 값이 할당되지 않은 변수의 초깃값입니다.
즉 undefined는 값이자 자료형이라 할 수 있습니다.
let id
console.log(id) //undefined
이처럼 변수만 선언하고 값을 할당하지 않은 경우 초깃값인 'undefined'가 나타납니다.
null
null은 어떠한 값이 의도적으로 비어있거나 유효하지 않은 것을 의미합니다.
let id = null;
이렇게 id의 값으로 null을 입력하는 경우 값은 할당하지만, 유효하지 않은 경우를 뜻합니다.
객체objcet
객체란 하나의 변수에 다양한 정보를 포함하는 자료형입니다.
객체는 키(key)와 값(value)으로 만들며, 이들은 객체의 속성(property)이라고 합니다.
let obj = {
a:100,
b:200,
c:"javascript"
};
console.log(obj.a); //100
console.log(obj.b); //200
console.log(obj.c); //javascript
객체는 중괄호({}) 안에 정보를 담으며 '키:값'을 한 쌍으로 쉼표로 구분합니다.
위의 예시는 a, b, c라는 키에 100, 200, "javascript"라는 값을 넣고 각각의 키로 호출한 것입니다.
let obj = {
id: 'Lee'
}
let copy = obj
console.log(copy.id); //Lee
boj.id = "Kim"; //obj와 copy는 동일한 속성이기 때문에 같은 객체이다.
console.log(copy.id); //Kim
이처럼 불변하는 원시 유형과 다르게 객체는 속성을 참조하기 때문에 값이 바뀌면 복사한 데이터의 값도 변경됩니다.