본문 바로가기
자바 스크립트

자바스크립트 자료형

by y00ns00 2020. 12. 2.
let name = "John";

// 변수를 문자열 중간에 삽입
alert( `Hello, ${name}!` ); // Hello, John!

자료형

자바스크립트에는 여덟가지 기본 자료형이 있다.

자바스크립트의 변수는 자료형에 관계없이 모든 데이터일 수 있다.

따라서 변수는 어떤 순간에 문자열일 수 있고 다른 순간엔 숫자가 될 수도 있다.

 

이처럼 자료의 타입은 있지만 변수에 저장되는 값의 타입은 언제든지 바꿀 수 있는 언어를 '동적 타입언어' 라고 부른다.

 

숫자형 

숫자형은 정수 및 부동소수점 숫자를 나타낸다.

숫자형엔 일반적인 숫자 외에 Infinity, -Infinity, NaN같은 '특수 숫자 값(special numeric value)'이 포함됩니다.

 

Infinity는 어떤 숫자보다 큰 특수 값 무한대를 나타낸다. 어느 숫자든 0 으로 나누면 무한대를 얻을 수 있다.

 

NaN은 계산 중에 에러가 발생했다는 것을 나타내주는 값 

부정확하거나 저으이되지 않은 수학연산을 사용하면 계산중에 에러가 발생하는데 이때 NaN이 반환 된다.

 

수학 연산은 안전합니다.

-자바스크립트에서 행해지는 수학 연산은 '안전’하다고 볼 수 있습니다. 0으로 나눈다거나 숫자가 아닌 문자열을 숫자로 취급하는 등의 이례적인 연산이 자바스크립트에선 가능합니다.

말이 안 되는 수학 연산을 하더라도 스크립트는 치명적인 에러를 내뿜으며 죽지 않습니다. NaN을 반환하며 연산이 종료될 뿐입니다.

 

 

Bigint

Bigint 형은 표준으로 채택된 지 얼마 안된 자료형으로 길이에 상관없이 정수를 나타낼 수 있다.

Bigint 형 값은 정수 리터럴 끝에 n을 붙이면 만들 수 있다.

 

 

문자형

문자열(String)을 따옴표롤 묶는다.

 

큰따옴표와 작은 따옴표는 기본적인 따옴표로,자바스크립트에는 차이를 두지 않는다.

역따옴표(`...`)로 변수나 표현식을 감싼후 ${....} 안에 넣어주면 변수나 표현식을 문자열 중간에 손쉽게 넣을 수 있다.

let name = "John";

// 변수를 문자열 중간에 삽입
alert( `Hello, ${name}!` ); // Hello, John!

큰따옴표나 작은 따옴표를 사용하면 중간에 표현식을 넣을 수 없다.

 

char형은 없다!

 

 

불린(boolean)형

불린형(논리 타입)은 true와 false 두가지 값밖에 없는 자료형

불린형은 긍정(yes)이나 부정(no)을 나타내는 값을 저장할때 사용한다. true는 긍정 false는 부정을 의미

 

 

null 값

null 값은 어느 자료형에도 속하지 않는 값

null 값은 오로지  null 값만 포함하는 별도의 자료형을 만든다.

 

자바스크립트 null은 자바스크립트 이외 언어의 null과 성격이 다르다 

다른 언어에선 null을  존재하지 않는 객체에대한 참조나 널 포인터 를 나타낼때 사용

 

하지만 자바스크립트에서는 null을 존재하지 않는 값 비어있는 값 알 수 없는 값을 나타내는 데 사용

 

undefined 값

undefined 값도 null 처럼 자신만의 자료형을 형성

undefined는 값이 할당되지 안은 상태를 나타낼 때 사용

변수는 선언 했지만 값을 할당하지 않았다면 해당 변수에 undefined가 자동으로 할당 된다.

 

 

객체와 심볼

객체(object)형은 특수한 자료형

객체형을 제외한 다른 자료형을 문자열이든 숫자든 한 가지만 표현할 수 있기 때문에 원시(primitive) 자료형이라 부른다.

반면 객체는 데이터 컬렉션이나 복잡한 개체(entity)를 표현할 수 이싿.

 

심볼(symbol)형은 객체의 고유한 식별자를 만들 때 사용 

 

 

typeof 연산자

typeof 연산자는 인수의 자료형을 반환한다. 자료형에 따라 처리방식을 다르게 하고 싶거나 변수의 자료형을 빠르게 

알아내고자 할 때 유용 

1. 연산자 : typeof x

2. 함수 : typeof(x)

 

typeof x를 호출하면 인수의 자료형을 나타내는 문자열을 반환합니다.

 

- Math는 수학 연산을 제공하는 내장 객체이므로 "object"가 출력됩니다.

- typeof null의 결과는 "object"입니다. null은 별도의 고유한 자료형을 가지는 특수 값으로 객체가 아니지만, 하위 호환성을 유지하기 위해 이런 오류를 수정하지 않고 남겨둔 상황입니다. 언어 자체의 오류이므로 null이 객체가 아님에 유의하시기 바랍니다.

- typeof는 피연산자가 함수면 "function"을 반환합니다. 그러므로 typeof alert는 "function"을 출력해줍니다. 그런데 '함수’형은 따로 없습니다. 함수는 객체형에 속합니다. 이런 동작 방식이 형식적으론 잘못되긴 했지만, 아주 오래전에 만들어진 규칙이었기 때문에 하위 호완성 유지를 위해 남겨진 상태입니다. 한편, 실무에선 이런 특징이 매우 유용하게 사용되기도 합니다.

 

 

 

요약

자바스크립트에는 여덟 가지 기본 자료형이 있습니다.

  • 숫자형 – 정수, 부동 소수점 숫자 등의 숫자를 나타낼 때 사용합니다. 정수의 한계는 ±253 입니다.
  • bigint – 길이 제약 없이 정수를 나타낼 수 있습니다.
  • 문자형 – 빈 문자열이나 글자들로 이뤄진 문자열을 나타낼 때 사용합니다. 단일 문자를 나타내는 별도의 자료형은 없습니다.
  • 불린형  true, false를 나타낼 때 사용합니다.
  • null  null 값만을 위한 독립 자료형입니다. null은 알 수 없는 값을 나타냅니다.
  • undefined  undefined 값만을 위한 독립 자료형입니다. undefined는 할당되지 않은 값을 나타냅니다.
  • 객체형 – 복잡한 데이터 구조를 표현할 때 사용합니다.
  • 심볼형 – 객체의 고유 식별자를 만들 때 사용합니다.

typeof 연산자는 피연산자의 자료형을 알려줍니다.

  • typeof x 또는 typeof(x) 형태로 사용합니다.
  • 피연산자의 자료형을 문자열 형태로 반환합니다.
  • null의 typeof 연산은 "object"인데, 이는 언어상 오류입니다. null은 객체가 아닙니다.

 

 

출처 : ko.javascript.info/

댓글