JavaScript&TypeScript

JS) type

백단비 2023. 4. 21. 09:33

Type

자바스크립트에서는 6가지의 원시 타입과 객체가 존재합니다.

 

원시 값 (Primitive Value)

원시 값은 한 번 생성된 값은 변경할 수 없기 때문에 값을 변경하려면 변수에 새 값을 할당해야 합니다. 즉 원본은 하나뿐인 겁니다.

 

원시 값의 종류

- Boolean : 논리적 값 true, false 두 가지 값만 존재하며 주로 조건문 등에서 판단의 기준으로 사용됩니다.

- null : 존재하지 않거나 유효하지 않은 값을 나타내며 비어있다는 의미로 표현됩니다. 

- undefined : 선언 후 값을 할당하지 않은 변수를 나타내며 변수 선언 후 초기화 하지 않는다면

     undefined가 자동으로 할당됩니다.

- number : 정수, 실수 등의 숫자, 부동소수점 숫자를 표현합니다

    일반적인 숫자 외에 infinity, -infinity, NaN(Not a Number) 같은 특수 숫자 값을 포함하며 

    원시 값이 안정적으로 나타낼 수 있는 최대치인 정수 2^53 -1보다 큰 값을 사용할 수 없습니다.

    큰 값을 사용하려면 Bigint(숫자)를 사용하거나 숫자뒤에 n을 붙여줘야 합니다.

- string : 빈 문자열이나 글자들을 표현하는 문자열입니다.

     자바스크립트에서 문자열은 큰 따옴표(""), 작은따옴표('') , 역 따옴표(``):backtick을 사용해서 나타냅니다.

     큰 따옴표와 작은따옴표는 안에 변수를 혼합해서 사용할 수 없지만 역 따옴표 안에는 변수를 혼합해서 사용이 가능합니다.

     역 따옴표 안에서 변수를 사용하려면 `${변수}` 역 따옴표 안에 ${}를 같이 써서 사용해야 합니다.

- symbol : 문자열과 함께 객체 property로 사용되며 고유 식별자를 나타내는데 ES6에서 새로 추가된 타입입니다.

 

객체 타입(Object type)

- object: 다수의 원시 자료형을 포함하거나 복잡한 개체(entity)를 표현할 수 있는 자료형이며

   Object() 또는 중괄호 {}를 통해서 생성할 수 있습니다. 

   object의 개체는 key : value 형태로 되어있으며 object.keys()나 object.values로 key, value값에 접근 가능합니다.

- object에 개체(entity) 추가는 object.key = value 식으로 넣어주면 되고 삭제는 delete object.key로 가능합니다.

- 객체 복사 문제점 : object의 값을 복사할 때는 대상 전체가 아닌 object 내 주소 값만 복사되는 문제 발생 합니다.

 

        ==> 가리키는 대상 전체를 복사하는 얕은 복사(Shallow copy)로 해결가능합니다.

- 얕은 복사의 종류 : 반복문 for문을 통한 객체 복사, Object.assign() 함수를 이용한 복사,

   전개 연산자(Spread Operator)(…)를 이용한 복사(ES6부터 지원)등이 있습니다.

 

      - 얕은 복사의 문제점 : 객체   다른 객체가 있다면 복사되지 않는다는 점

 

         ==> 깊은 복사(Deep copy)로 해결 가능합니다.

 

 

 

참조

 

JavaScript의 타입과 자료구조 - JavaScript | MDN

모든 프로그래밍 언어에는 내장된 자료구조가 존재하지만 보통 그 내용은 언어마다 다릅니다. 이 글에서는 JavaScript에서 사용할 수 있는 내장 자료구조와 그 속성에 대해 알아보겠습니다. 그러

developer.mozilla.org

 

320x100

'JavaScript&TypeScript' 카테고리의 다른 글

[TS] Interface (인터페이스)  (0) 2024.05.08
TypeScript의 기본 타입  (0) 2023.09.20
TypeScript란?  (0) 2023.09.06
JS ) 변수 (var, let, const)  (0) 2023.04.05
JS ) 스코프  (0) 2023.03.30