# 타입과 변수

# variable

변수는 값의 위치(주소)를 기억하는 저장소

이때 위치는 메모리 상의 주소*(address)

C 언어와 달리 javascript 동적 타입(Dynamic/Weak type) 언어이다. 변수에 값을 할당할 시에 타입(type)을 추론하여 할당한다.

# Type

데이터 타입은 데이터를 메모리에 저장할 때 확보햐야 하는 메모리 공간의 크기와 유요한 값, 메모리에 저장되어 있는 2진수 데이터를 어떻게 해석할 지에 대힌 정보를 컴퓨터와 개발자에게 제공한다.

ES6는 7개의 데이터 타입을 제공한다.

  • 원시타입(primitive data type)
    • boolean
    • null
    • undefined
    • number
    • string
    • symbol (ES6에서 추가)
  • 객체 타입 (object/reference type)
    • object

# number

ECMAScript 표준에 따르면, 숫자 타입의 값은 배정밀도 64비트 부동소수점 형(double-precision 64-bit floating-point format : -(253 -1) 와 253 -1 사이의 숫자값)을 따른다. 즉, 모든 수를 실수를 처리하며 정수만을 표현하기 위한 특별한 데이터 타입(integer type)은 없다.

var integer = 10;        // 정수
var double = 10.12;      // 실수
var negative = -20;      // 음의 정수
var binary = 0b01000001; // 2진수
var octal = 0o101;       // 8진수
var hex = 0x41;          // 16진수

모든 수를 실수를 처리한다. 정수로 표시된다해도 사실은 실수다. 정수로 표시되는 수 끼리 나누더라도 실수가 나올 수 있다.

console.log(1 === 1.0); // true

var result = 4 / 2;
console.log(result); // 2
result = 3 /2;
console.log(result); // 1.5

추가적으로 3가지 특별한 값들도 표현할 수 있다.

  • Infinity : 양의 무한대
  • Infinity : 음의 무한대
  • NaN : 산술 연산 불가(not-a-number)

# string

문자열은 0개 이상의 16bit 유니코드 문자(UTF-16) 들의 집합으로 대부분의 전세계의 문자를 표현할 수 있다.

var str = "string"; // 큰 따옴표
str = 'string';     // 작은 따옴표
str = `string`;     // 백틱(ES6 템플릿 리터럴)

str = "큰 따옴표로 감싼 문자열 내의 '작은 따옴표'는 문자열이다.";
str = '작은 따옴표로 감싼 문자열 내의 "큰 따옴표"는 문자열이다.';
© Devlog from jeong