데이터타입
이란 변수를 선언할 때, 숫자나 문자열 또는 이 외의 것들을 변수에 저장하기 위하여 선언하는 데이터 종류를 말합니다.
💛 정적 타입 언어(Static Typed Language)
C나 Java와 같은 프로그래밍 언어에는 정적 타입 변수(int), 부동 소수점 타입 변수(double) 등이 있어 그 변수의 타입과 일치하는 데이터만 저장이 가능하다. 이와 같이 변수에 타입이 있는 언어를 정적 타입 언어(Static Typed Language)
라고 한다.
💛 동적 타입 언어(Dynamic Typed Language)
하지만 자바스크립트는 변수에 타입이 없으므로, 모든 타입의 데이터를 저장할 수 있다. 이와 같이 실행할 때 변수에 저장된 데이터 타입을 동적으로 바꿀 수 있는 언어를 동적 타입 언어(Dynamic Typed Language)
라고 한다.
데이터 타입은 크게
기본형
과참조형
두 가지로 나눌 수 있다.
💛 Primitive Type (기본형, 또는 원시 타입) : 값을 그대로 할당
💛 Reference Type (참조타입) : 값이 저장된 주소값을 할당(참조함)
// 초기화가 없으면 undefined 상태
var a;
console.log(a);
// 10을 저장하면서 number 타입을 가짐
var c = 10;
console.log(c, typeof c);
// 같은 이름의 변수를 재선언할 수 있음
var c = 'hello';
console.log(c, typeof c);
// 루트 -25를 의미함(실제로 존재하는 숫자가 아님)
var c = Math.sqrt(-25);
console.log(c, typeof c);
// Infinity, -Infinity
var c = 10 / -0;
console.log(c, typeof c);
Javascript의 변수 특징
- 동적 타입이다. (느슨한 타입)
- 변수를 선언할 때 자료형(타입)을 결정하지 않고, 변수명만 결정한다.
- 변수에 값이 저장될 때 자료형(타입)이 결정된다.
- 이미 저장된 변수의 자료형(타입)을 바꿔서 다시 저장할 수 있다.
- 변수 선언이 없는 상태에서도 변수를 사용할 수 있다. (ES6에서는 반드시 선언이 필요한 변수가 존재한다.)
💛 var
💛 let (ES6 표준) - 지역변수
💛 const (ES6 표준) - 상수
코드 중에는 항상 먼저 처리되는 코드가 있다. 예를들어, 변수의 선언이나 함수의 정의 등이 호이스팅에 속한다.
호이스팅 대상 : var
let
const
function
class
💛 문자열 → 정수
- Number('100') : 100
- parseInt('100') : 100
var a = '100';
var b = Number(a);
console.log(a, typeof a); // String
console.log(b, typeof b); // number
var a = parseInt(a);
console.log(a, typeof a); // number
콘솔창 :
💛 실수 → 정수
var a = 1.5;
var b = parseInt(a);
console.log(b, typeof b);
콘솔창 :
💛 문자열 → 실수
- Number('1.5') : 1.5
- parseFloat('1.5') : 1.5
var c = '1.5';
var d = Number(c);
console.log(d, typeof d);
var d = parseFloat(c);
console.log(d, typeof d);
💛 정수/실수 → 문자열
- String(100) : '100'
- String(1.5) : '1.5'
var e = '100';
console.log(String(e));
var e = '1.5'
console.log(String(e));