[JS] 자바스크립트의 자료형

2020. 6. 10. 00:54Javascript/문법

1. 숫자형

  • 정수, 부동 소수점과 같은 숫자 등의 수를 나타낼 때 사용한다.

  • 곱셈(*), 나눗셈(/), 덧셈(+), 뺄셈(-) 등을 이용해서 연산이 가능하다.

  • 일반적인 숫자 외에 Infinity, -Infinity, NaN과 같은 특수 숫자 값이 존재한다.

const num = 3.5;  // 3.5

/* 자바스크립트는 정수, 소수를 구분하는 형이 없다.*/

console.log(num/3); // 1.1666666666666667
console.log(parseInt(num/3)); // parseInt를 이용해서 1.1666666666666667에서 정수 부분 1을 가져오게 할 수 있다.

/* 숫자형의 사칙연산 */
console.log("더하기:", 3 + 3.5); // 6.5
console.log("빼기:", 3 - 7); // -4
console.log("곱하기:", 2.3 * 3);// 6.8999999999999995
console.log("나누기:", 3/3); // 1

/* 특수 숫자 값 */
console.log("무한대:", 1/0); //Infinity
console.log("NaN:", 1/"ABC"); //계산 중 에러 발생

 

2. BigInt

 자바스크립트는 내부표현방식 때문에 $$ -(2^{53}-1)\leq x \leq(2^{53}-1) $$ 의 범위의 숫자만을 나타낼 수 있다.

 대부분의 상황에서 이런 제약사항은 문제가 되지는 않지만, 암호 관련 작업의 경우아주 높은 정밀도로 작업을 해야할 때엄청나게 큰 숫자를 필요로 한다. 그래서 나온 것이 BigInt다. 이 자료형 나온지 얼마 안됐으며 길이에 상관없이 정수를 나타낼 수 있다. 정수 리터럴 끝에 n을 붙여서 만들 수 있다.

/* BigInt 선언 방식
(1) 끝에 n을 붙인다.
(2) 함수 BigInt를 호출한다.
 */
const bigint = 1234567890123456789012345678901234567890n;
const sameBigint = BigInt("1234567890123456789012345678901234567890");

console.log(bigint);
console.log(sameBigint);
console.log(bigint === sameBigint); //true


/* 일반 숫자와 상관없이 연산이 가능하다.*/
console.log(1n + 2124141414n); // 2124141415n
console.log(5n/1n); // 5n


/* BigInt는 BigInt끼리만 연산이 가능하다. */
console.log(1n + 2); // 에러 발생
console.log(2n/2); // 에러 발생

/* 일반 숫자와 함께 쓰는 것이라면 명시적 형 변환을 해주어야한다. */
console.log(Number(1n) + 24); // 25


/* 비교 연산자 */
console.log(2n > 1n); // true
console.log(24 > 1n); // true 

 

3. 문자형

 문자열을 표현하기 위해서는 다음과 같은 세 가지를 쓰면 된다.

  1. 큰 따옴표 ("")

  2. 작은 따옴표 ('')

  3. 백틱(``) [키보드 1키 왼쪽에 있는 `]

const age = 25;

/* 모두 같은 결과: 내 나이는 25 입니다. */
console.log("내 나이는 " + age + "입니다."); // 큰 따옴표
console.log('내 나이는 ' + age + '입니다.'); // 작은 따옴표 
console.log(`내 나이는 ${age}입니다.`); // 백틱

 

4. Boolean 형

 true, false 두 가지 밖에 없다. true는 긍정을 나타내고 false는 부정을 나타낸다.

const positive = true;
const negative = false;

if(positive)
  console.log("무조건 실행!")

if(negative)
  console.log("영원히 실행 안됨!");

 

5. null 값

 null은 지금까지 소개한 자료형 중 어느 자료형에도 속하지 않는다. null은 오로지 null 값만 포함하는 별도의 자료형을 말한다. 주로 알수 없는 값, 비어 있는 값을 나타내는데 사용한다.

const age = null;

if(age===null)
  console.log("나이를 알 수 없습니다.");

 

6. undefined 값

 undefined 값은 null 처럼 자신만의 자료형을 생성한다. 또한 값이 할당되지 않은 상태를 나타낼 때 사용한다. 그리고 undefined는 직접 변수에 값을 할당할 수 있다. 이는 null처럼 알수없는 값, 비어있는 값을 나타내는데 사용하는데, 하지만 이 경우,  undefined보다는 null값을 할당하도록 하자.

let age;
let value = undefined;

/* age를 초기화하지 않았으므로, 값이 할당되지 않아 undefined 출력 */
console.log(age); //undefined
console.log(value); //null을 직접 할당하도록 하자!

if(value === undefined)
  console.log("This value is undefined");

 

7. 객체

 객체특수한 자료형이다. 객체형을 제외한 다른 자료형은 문자열이든 숫자든 한 가지만 표현할 수 있어서 원시 자료형이라 부른다. 하지만 객체데이터 컬렉션이나 복잡한 개체표현이 가능하다. 객체 선언에는 컬리 브라켓({})을 사용한다.

/* 객체 선언 */ 
const obj = {};
console.log(obj); // {} 출력


/* 객체는 데이터들을 내 임의대로 키 값을 만들어서 정렬할 수 있다. */
const kane = {
  name: "케인",
  isbigNode: true,
  gender: "man",
  msg: ["아이고난", "흐헤헤"] 
}

console.log(kane);

 

8. 심볼 형

 객체의 고유한 식별자를 만들 때 사용한다. 나중에 따로 포스팅하도록 하겠다.

 

 

참고자료

 1. 코어 자바스크립트 - 자료형

 2. 코어 자바스크립트 - BigInt

 3. 코어 자바스크립트 - 객체

'Javascript > 문법' 카테고리의 다른 글

[JS] 비동기 처리의 시작 콜백, 그리고 콜백 지옥  (0) 2021.04.11
[JS] 자료의 형 변환  (0) 2020.06.13
[JS] 변수와 상수  (0) 2020.06.08
[JS] Hello World 출력  (0) 2020.06.07
자바스크립트란?  (0) 2020.06.03