[TIL] 데이터 타입이란?

Leesu·2023년 2월 26일
0

[TIL] : Today I Learned

목록 보기
11/21

Javascript 의 타입

  • 데이터 타입이란 변수를 선언할 때, 숫자나 문자열 또는 이외의 것들을 변수에 저장하는 데이터 종류를 말한다.
  • Javascript 언어의 타입은 원시값(기본 타입)객체(참조 타입)로 나뉜다.

원시타입(기본타입) : 값을 그대로 할당

  • Boolean
  • Null
  • Undefined
  • Number
  • String
  • Symbol

참조타입 : 값이 저장된 주소값을 할당

  • Object
    • Array
    • Function
    • RegExp(정규표현식)
    • ES6 에는 map 등등..

🟡 원시값 타입(기본 타입)

  • 객체를 제외한 모든 타입은 불변값을 정의한다.
    예를들어 문자열은 불변하다. 이런 일련의 타입을 "원시값"이라고 한다.

- Boolean 타입

  • 논리 요소를 나타내며 truefalse 두가지 값을 가진다.
  • 주로 if 같은 어떤 코드 부문이 실행되어야 할지 또는 어떤 코드 부문을 반복해야할지 결정하는데 사용된다.
  • true 는 1, false 는 0 의 값을 가진다.

- Null 타입

  • 의도적으로 값이 없다는 것을 명시하기 위해 할당하는 값이다.
  • 주로 의도적으로 비어있는 값을 넣을 때 사용한다.
  • null 타입은 null 하나의 값만 가질 수 있다.
let a = 'lee';
a = null // 참조 정보 제거

- Undefined 타입

  • 선언한 후 값이 초기화되지 않았거나 할당되지 않는 변수를 의미한다.
let a;
console.log(a) // 출력결과: Undefined

- Number 타입

  • 다른 프로그래밍 언어들은 정수타입/ 실수타입을 구분하지만, 자바스크립트에서는 숫자를 모두 64비트 부동소수점 형식으로 표현한다. (실수 하나로만 표현된다)
  • 동적으로 변할 수 있으므로 변수에 할당된 값에 따라 변수의 타입이 결정된다.
  • 모든 숫자는 +,-,*,/,% 를 할 수 있고
    곱하기와 나누기가 더하기와 빼기보다 더 우산시된다.
  • 또, >,< 부등호를 사용하여 크고 작음을 비교할 수 있다.
let a = 10; // 정수
let b = 10.2 // 실수
let c = -10 // 음의 정수
let d = 0b010100 // 2진수
let e = 0o101 // 8진수
let f = 0x41 // 16진수
  • 추가적으로 3가지 특별한 값들도 표현할 수 있다.
    • Infinity : 양의 무한대
    • -Infinity : 음의 무한대
    • NaN : 산술 연산불가(not-a-number)

- String 타입

  • 문자열 값을 나타낸다. 작은 따옴표(') 나 큰 따옴표("), 리터럴(``)로 할당할 수 있다.
  • 추가적으로, 문자열은 유사 배열 성격을 띈다.
    그렇다고해서, 문자열을 변경할 수 있는 것은 아니다. 한번 생성된 문자열은 원시 성격, read only 로 변경 불가능하다.
    그러나 재할당은 가능하다.
let str = 'string';

for ( let i = 0; i < str.length; i++) {
	console.log(str[i]);
}

- Symbol 타입

  • ES6 에서 추가되었다.
  • 변경 불가능한 유일한 값을 생성할 때 사용된다(key 값).
    값 자체의 확인이 불가하여 외부로 노출되지 않는다.
let sym = Symbol('key');
console.log(typeof sym) // 출력결과: Symbol

🟡 참조 타입(객체 타입)

- Object(객체) 타입

  • 자바스크립트에서 기본 타입을 제외한 모든 값은 객체로 취급된다.
  • 따라서 배열이나 함수 등도 모두 객체로 표현된다.
  • 주로 이름(key):값(value) 한 쌍의 데이터를 저장하며, 여러개의 프로퍼티를 저장할 수 있다.
  • 이런 객체의 프로퍼티는 기본 데이터 타입의 값을 가지거나 다른 객체를 가리킬 수 있다.
  • 함수도 객체의 프로퍼티로 지정할 수 있고, 자바스크립트에서는 이런 프로퍼티를 메서드라고 부른다.
let obj = {
	name: "leesu",
    age: 100,
    func: function () {
    	return this.name + "," this.age;
    }
}

console.log(obj.name, obj.age) // 출력결과 leesu 100
console.log(obj.func()) // 출력결과 lee,100

🟢 동적 타이핑

  • 자바스크립트는 동적 언어이다. 따라 변수의 타입이 지정되는 것이 아니라 값이 할당되는 과정에서 값의 타입에 의해 자동으로 타입이 결정된다는 뜻이다.
var a;

a = null;
console.log(typeof a); // null

a = 3;
console.log(typeof a); // number

a = "hi";
console.log(typeof a); // string

참고자료_1
참고자료_2
참고자료_3

profile
기억력 안 좋은 FE 개발자의 메모장

0개의 댓글