JS의 7가지 데이터타입

  1. 원시타입
    1. 불변성 : 값 변경 불가
    2. 값에의한 전달 : 실제 값이 복사 원래값에 영향을 주지 않음.
  2. 객체타입
    1. 가변성 : 변경 가능 (객체의 프로퍼티 추가, 수정, 삭제)
    2. 참조에 의한 전달 : 객채의 참조가 복사 → 두 변수가 하나의 객체를 가리켜서 수정시 영향을 받음.
데이터타입 설명
원시타입 number 숫자 (정수, 실수 구분 없음)
string 문자열
boolean true/false
undefined 변수에 암묵적으로 할당되는 값
null 값이 없음을 명시하는 값
symbol ES6에서 추가된 7번째 타입
객체타입 객체, 함수, 배열 등

숫자타입

C나 JAVA는 정수, 실수를 구분해서, int, float, double등의 타입이 있는데에 반해 JS는 number 타입 하나만 존재하며 실수, 정수를 구분하지 않음.

Number 타입은 배정밀도 64비트 부동소수점 형식**

<aside> 💡

메모리에서 64비트(8바이트)를 차지하고 광범위한 실수를 나타내는 컴퓨터 숫자 형식

1비트 = 부호

11비트 = 지수

52비트 = 가수(유효숫자)

</aside>

var int = 10;
var double = 10.12;
var negative = -20;

// 이거 모두 메모리에 **배정밀도 64비트 부동소수점 형식의** 2진수로 저장

var binary = 0b010001 // 2진수
var octal = 0o101; // 8진수
var hex = 0x41 // 16진수

이거 전부다 표현하는 데이터는 10진수
console.log(binary) = 65
console.log(octal) = 65
console.log(hex) = 65

binary === octal //true

number 타입은 모든 수를 실수로 처리

console.log(1 === 1.0) // true
console.log(3 / 2) // 1.5
console.log(10 / 0) // Infinity
console.log(10 /-0) // -Infinity
console.log(1 * 'String') // NaN

문자열 타입