데이터 타입은 프로그램에서 다룰 수 있는 값의 종류를 의미합니다.
자바스크립트의 모든 값은 데이터 타입을 갖습니다.
자바스크립트(ES6+)는 7개의 데이터 타입을 제공합니다.
숫자, 문자열, 불리언, undefined, null, 심볼형, 객체 데이터 타입이 있습니다.
7개의 데이터 타입은 원시 타입과 객체 타입으로 분류할 수 있습니다.
원시 타입의 값은 변경 불가능한 값이며 pass-by-value(값에 의한 전달) 입니다.
숫자, 문자열, 불리언, undefined, null, 심볼형이 있습니다.
숫자, 정수와 실수 구분 없이 하나의 숫자 타입만 존재합니다.
모든수를 실수 하나로만 표현합니다.
const num1 = 1;
const num2 = 2.2;
console.log(num1); // 1
console.log(num2); // 2.2
문자열은 따옴표 또는 쌍따옴표로 둘러싸인 문자들의 집합입니다.
const str1 = 'hello';
const str2 = 'world';
// 함수 typeof() : 변수나 상수의 데이터 타입을 반환
console.log(typeof str1); // string
console.log(typeof str2); // string
논리적 참 과 거짓으로 표현되는 값입니다.
//불리언은 true or false
const b1 = true;
const b2 = false;
console.log(typeof b1); // boolean
자바스크립트에서는 타입 변환시 값이 있는 경우 불리언형으로 변경하게 되면 true로 변환합니다.
0, null, undefined 불리언형으로 변경하게 되면 false로 변환합니다.
타입이 정해지지 않은 것을 의미합니다.
변수 키워드로 선언된 변수에 암묵적으로 할당되는 값입니다.
const num;
let str;
console.log(num); // undefined
console.log(str); // undefined
값이 정해지지 않은 것을 의미합니다.
//객체는 만들어졌지만 아무것도 할당되지 않고 값이 정해지지 않은 것
let cat = null;
// null을 할당한 것과 엄연히 다릅니다. 데이터 타입이 정해지지 않았을 뿐입니다.
let dog;
console.log(cat); // null
console.log(dog); // undefined
ES6에서 새롭게 추가된 7번째 타입입니다.
ES5 (Number, String, Boolean, null, undefined, Object)
변경 불가능한 원시 타입입니다.
이름의 충돌 위험이 없는 유일한 객체의 프로퍼티 키를 만들기 위해 사용합니다.
let symbol1 = Symbol(); // identity한 값이 생김
let symbol2 = Symbol(); // identity한 값이 생김
// symbol3, symbol4는 전혀 다른 값이다.
let symbol3 = Symbol('a'); // {알수없는값 : "a"} 저장
let symbol4 = Symbol('a'); // {알수없는값 : "a"} 저장
let user1 = { symbol3, name: '김사과' };
let user2 = { symbol4, name: '김사과' };
console.log(user1); // {symbol3: Symbol(a), name: '김사과'}
console.log(user2); // {symbol4: Symbol(a), name: '김사과'}
Symbol 값을 키로 갖는 프로퍼티는 다른 어떠한 프로퍼티와도 충돌하지 않습니다.
원시 타입을 제외한 객체, 함수, 배열 등 모든 값들입니다.
객체는 데이터와 그 데이터에 관련한 동작(절차, 방법, 기능)을 모두 포함할 수 있는 개념적 존재입니다.
객체는 이름과 값을 가지는 데이터를 의미하는 프로퍼티와 동작을 의미하는 메소드를 포함할 수 있는 독립적 주체입니다.
여러 속성을 하나의 변수에 저장할 수 있도록 해주는 타입입니다.
자바스크립트는 객체 기반의 스크립트 언어로서 자바스크립트를 이루고 있는 거의 “모든 것”이 객체이다.
객체는 pass-by-reference(참조에 의한 전달 방식)으로 전달됩니다.
데이터 타입은 프로그래밍 언어에서 다룰 수 있는 값을 말하며 자바스크립트의 데이터 타입은 원시 타입(숫자, 문자열, 불리언, undefiner, null, symbol) 과 객체 타입을 가집니다. 원시 타입은 값에 의한 전달이고, 객체 타입은 참조에 의한 전달 방식입니다.