[JS] 002 자료형

조승원·2021년 11월 8일
0

JaveScript

목록 보기
2/11
post-thumbnail

지난 번 게시물인 변수와 상수에서는 아직 깊게 들어가보지않아 크게 어려움이없었습니다.
let과 const의 차이를 알았지만 아직은 어떤것이던 var를 쓰던게 익숙해서 차차 적응해 나가야 할거같습니다.

자료형

자바스크립트에서 값은 항상 문자열이나 숫자형 같은 특정한 자료형에 속한다.


숫자형

let n = 123;
n = 12.345;

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

숫자형엔 일반적인 숫자 외에 Infinity , -Infinity, NaN 같은 '특수 숫자 값' 이 포함된다.

  • Infinity 는 어떤 숫자보다 더 큰 특수값, 무한대(∞)를 나타낸다.
    어느 숫자든 0으로 나누면 무한대를 얻을 수 있다.
  • NaN 은 계산 중에 에러가 발생했다는 것을 나타내주는 값이다.
    부정확하거나 정의되지 않은 수학 연산을 사용하면 이때 NaN이 반환된다.

BigInt

내부 표현 방식 때문에 자바스크립트에선 (2^53-1)(9007199254740991) 보다 큰 값 혹은 -(2^53-1) 보다 작은 정수는 '숫자형’을 사용해 나타낼 수 없다.

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

// 끝에 'n'이 붙으면 BigInt형 자료입니다.
const bigInt = 1234567890123456789012345678901234567890123456n;

문자형

자바스크립트에선 문자열(string)을 따움표로 묶는다.

let str = "Hello";
let str2 = 'Single quotes are ok too';
let phrase = `can embed another ${str}`;

따옴표는 세 종류가있다.

1. 큰따움표 : "Hello"

2. 작은따움표 : 'Hello'

3. 역 따움표(백틱,backtick) : `Hello`


불린형

불린형(논리 타입)은 truefalse 두 가지 값 밖에 없는 자료형이다.

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


'null'값

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

let age = null;

자바스크립트의 null은 자바스크립트 이외 언어의 null과 성격이 다르다.
다른 언어에선 null을 '존재하지 않는 객체에 대한 참조’나 '널 포인터(null pointer)'를 나타낼 때 사용한다.

하지만 자바스크립트에선 null을 ‘존재하지 않는(nothing)’ 값, ‘비어 있는(empty)’ 값, ‘알 수 없는(unknown)’ 값을 나타내는 데 사용한다.


'undefined'값

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

undefined는 '값이 할당되지 않은 상태’를 나타낼 때 사용한다.

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

let age;

alert(age); // 'undefined' 가 출력

객체와 심볼

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

객체형을 제외한 다른 자료형은 문자열이든 숫자든 한 가지만 표현할 수 있기 때문에 원시(primitive) 자료형이라 부른다.
반면 객체는 데이터 컬렉션이나 복잡한 개체(entity)를 표현할 수 있다.

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


typeof 연산자

typeof 연산자는 인수의 자료형을 반환한다.

자료형에 따라 처리 방식을 다르게 하고 싶거나 변수의 자료형을 빠르게 알아내고자 할 때 유용하다.

typeof undefined // "undefined"

typeof 0 // "number"

typeof 10n // "bigint"

typeof true // "boolean"

typeof "foo" // "string"

typeof Symbol("id") // "symbol"

typeof Math // "object"  (1)

typeof null // "object"  (2)

typeof alert // "function"  (3)
profile
Front-end

0개의 댓글