JavaScript | 자료형

임하스·2022년 7월 12일
0

Javascript 문법

목록 보기
2/4

📌 JavaScript의 타입

JavaScript는 느슨한 타입(loosely typed)의 동적(dynamic) 언어이다.

  • JavaScript의 변수는 어떤 특정 타입과 연결되지 않으며, 모든 타입의 값으로 할당 (및 재할당) 가능하다. 이것을 동적 타입이라고 한다.
  • JavaScript의 타입은 원시 값(=기본 타입, 7개)와 객체(=참조 타입, 1개)로 구성된다.
// 동적 타입
let foo = 42 // foo가 숫자
foo = 'bar' // foo가 이제 문자열
foo = true // foo가 이제 불리언

원시 값(Primitive Value)

숫자, 문자열, 불리언, null, undefined인 다섯가지 기본 타입은 더 이상 단순화할 수 없기 때문에 원시적(primitive)이라 하며, 이러한 값을 가리켜 원시 값이라 한다.

데이터 타입설명
Boolean논리적 값true or false
Null비어 있는 값null
Undefined값을 할당하지 않은 변수undefined
Number정수, 실수 등의 숫자와 세 개의 상징적인 값+0(0), -0
(2531)-(2^{53} − 1) ~ +(2531)+(2^{53} − 1),
-Infinity,
+Infinity,
NaN(Not a Number)
BigIntNumber의 안전 한계를 넘는 큰 정수2n, 53n, ...
String텍스트 데이터를 나타냄, 불변함"Hi", "123", ...
Symbol고유하고 변경 불가능한 원시 값, 객체의 속성 키로 사용"foo", "a", "b", ...

객체(Objects)

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

  • 식별자는 코드 내의 변수, 함수, 혹은 속성을 식별하는 문자열이다.
  • 식별자는 대소문자를 구분한다.
  • 객체 리터럴을 사용해 속성을 초기화, 추가, 제거할 수 있다.
  • 객체 리터럴은 중괄호({})로 묶인 0개 이상인 객체의 속성명과 관련 값 쌍 목록이다.
  • 속성 값으로는 다른 객체를 포함해 모든 타입을 사용할 수 있으므로 복잡한 자료구조의 구축이 가능하다.
  • 속성은 '키' 값으로 식별하며, 키 값으로는 문자열 값이나 심볼을 사용할 수 있다.
데이터 타입설명
object두 개 이상의 복잡한 개체를 저장{
name: 'Smith',
age: 32,
}

📌 typeof

typeof 연산자를 사용하면 변수의 타입을 알아낼 수 있다.

  • nullnull이 아니라 object라고 나오는데, 명백한 오류이지만 수많은 프로그램들이 object로 취급하며 만들어졌기 때문에 이전 버전에서 오류나는 것을 방지하기 위해 의도적으로 버그를 수정하지 않는다고 한다.
// 원시 값
console.log(typeof true); // boolean
console.log(typeof null); // object
console.log(typeof undefined); // undefined
console.log(typeof 123); // number
console.log(typeof 123n); // bigint
console.log(typeof "hi"); // string
console.log(typeof Symbol("id")); // symbol

// 객체
console.log(typeof Math); // object

// 함수
console.log(typeof console.log); // function

📌 참고

profile
예비 프론트엔드 개발자입니다! 피드백 대환영!! 질문 대환영!!

0개의 댓글