javascript 데이터 타입

구구·2023년 1월 16일
2

웹개발 이론 공부

목록 보기
3/5

🪴 데이터 타입 종류

  • 기본자료형=원시형(Primitive) Object 를 제외한 모든 값은 변경 불가능한 값(Immutable)이다.

    • Boolean
    • Null
    • Undefined
    • Number
    • BigInt
    • String
    • Symbol
  • 객체형(Object)



🪴 Boolean 타입

논리 요소를 나타내며 truefalse 두 가지의 값을 갖는다.

javascript 에서는 어떤 코드 부분이 실행되어야 할 지 결정하는데에 사용된다.

if (condition) {
  console.log("true");
} else {
  console.log("false");
}


🪴 Null 타입

null 하나의 값만 가질 수 있다.

존재하지 않거나 유효하지 않은 object 또는 주소를 의도적으로 가리키는 참조이다.

javascript 에서 Null 은 원시값 처럼 동작하고 원시값으로 보이지만 type 을 출력해보면 object 를 반환한다.

console.log(typeof null); // object


🪴 Undefined 타입

값을 할당하지 않은 변수는 자동으로 undefined 값을 가진다.

let x;
console.log(x);  // undefined


🪴 Number 타입

-(2^53 − 1)부터 2^53 − 1까지의 수이다.

부동소수점 숫자 외에도 +Infinity, -Infinity, NaN("Not a Number") 세 개의 상징적인 값을 가진다.

Number 타입중 유일하게 두가지 방식으로 표현할 수 있는 수가 있다.

console.log(0 === -0) // true
console.log(42 / +0)  // Infinity
console.log(42 / -0)  //-Infinity


🪴 BigInt 타입

임의 정밀도로 정수를 나타낼 수 있는 원시값이다.

Number의 안전 한계를 넘어서는 큰 정수도 안전하게 저장하고 연산할 수 있다.

정수 끝에 n을 추가하거나 생성자를 호출해 생성할 수 있다.

const bigint = 1234567890123456789012345678901234567890n;

const sameBigint = BigInt("1234567890123456789012345678901234567890");

const bigintFromNumber = BigInt(10);

일반 숫자와 섞어서 써야 하는 상황이라면

let bigint = 1234567890123456789012345678901234567890n;
let number = 3;

// 숫자를 bigint로
console.log(bigint + BigInt(number)); // 1234567890123456789012345678901234567893n

// bigint를 숫자로
console.log(Number(bigint) + number); // 1.2345678901234568e+39
console.log(Number(bigint));  // 1.2345678901234568e+39


🪴 String 타입

텍스트 데이터를 나타낼 때 사용하며 "요소"로 구성된 집합이다.

첫 번째 요소는 인덱스 0에, 그 다음 요소는 인덱스 1, 그 다음은 2, ... 이다.



🪴 Symbol 타입

객체의 속성 키로 사용할 수 있다.

ES6 버전의 JavaScript에서 새롭게 추가되었다.

일반적으로 심볼 타입은 객체의 프로퍼티 키를 고유하게 설정함으로써 프로퍼티 키의 충돌을 방지하기 위해 사용된다.

심볼은 Symbol 함수를 호출함으로써 생성할 수 있다. 이때 생성되는 심볼은 변경이 불가능한 원시 값이다.

const obj = {};

const sym1 = Symbol();
const sym2 = Symbol('foo');
const sym3 = Symbol('foo');

obj[sym1] = 'propertyValue1';
obj[sym2] = 'propertyValue2';
obj[sym3] = 'propertyValue3';  // no conflict with sym2

console.log(obj);  // {Symbol(): 'propertyValue1', Symbol(foo): 'propertyValue2', Symbol(foo): 'propertyValue3'}

console.log(obj[sym1]);  // propertyValue1
console.log(obj[sym2]);  // propertyValue2
console.log(obj[sym3]);  // propertyValue3

symbol에 대한 더 자세한 내용...



🪴 객체

식별자로 참조할 수 있는 메모리 상의 값이다.

속성을 추가하거나 제거할 수도 있다.

속성 값으로는 다른 객체를 포함해 모든 타입을 사용할 수 있으므로 복잡한 자료구조의 구축이 가능하다.

속성은 '키' 값으로 식별하며, 키 값으로는 문자열 값이나 심볼을 사용할 수 있다.



🪴 한 줄 정리

javascript의 데이터 타입은 크게 원시형과 객체형으로 나눌 수 있으며 원시형은 number, string, undefined 과 같은 Immutable 값이다.

0개의 댓글