원시 타입은 크게 6가지로 구분된다.
데이터 타입 | 설명 |
---|---|
숫자타입 | 정수와 실수 구분 없는 숫자 타입 |
문자열타입 | 문자열, 텍스트 데이터 |
불리언타입 | 참(true), 거짓(false) |
undefined 타입 | 값을 할당하지 않은 변수에 할당되는 값 |
null 타입 | 어떤 값이 의도적으로 비어있음을 표현 |
심볼 타입 | 유일하며 변경할수 없는 값, 객체의 키로 유일한 식별자를 만들고 싶을 때 사용 |
1. 숫자 타입
- 정수와 실수 구분 없는 숫자 타입
- 2진수, 8진수, 16진수는 값을 참조하면 모두 10진수로 변환된다.
var i = 5; //정수
var d = 5.3; //실수
var n = -30; //음의 정수
var b = 0b01010001; //2진수
var o = 0o121; //8진수
var h = 0x31; //16진수
console.log(b); //81
console.log(o); //81
console.log(h); //49
- 특별한 숫자 값
- Infinity : 양의 무한대
- -Infinity : 음의 무한대
- NaN : 숫자가 아님
- 숫자는 실수로 계산된다.
console.log(3 / 2) // 1.5
2. 문자열 타입
- 문자열, 즉 텍스트데이터 이다.
- 작은 따옴표, 큰 따옴표 또는 백틱 문자로 감싼다.
- 백틱 문자는 ES6에서 추가되었다.
var a = 'abc'; //작은 따옴표
var b = "가나다"; //큰 따옴표
var c = `😁. 😆. 😅. 🤣. 😂`; //백틱 문자
3. 불리언 타입
- 논리적인 참(true), 거짓(false) 값
- 조건문에서 자주사용한다.
var t = true;
if(t){
console.log(t)
}
var f = false;
if(f){
console.log(f)
}
// true만 표시된다.
4. undefined 타입
- var로 선언한 변수에 값을 할당하지 않을 때, 그리고 함수에 리턴 값이 없을 때 undefined가 할당된다.
- undefined 타입의 값은 undefined 뿐이다.
var u;
console.log(u);
function un(){
}
console.log(un())
5. null 타입
- 어떤 값이 의도적으로 비어있음을 표현하며 불리언 연산에서는 거짓으로 취급
- null 또는 undefined를 검사할 때, 동등 연산자(==)와 일치 연산자(===)의 차이를 주의가 필요
console.log(typeof null) // "object"
console.log(typeof undefined) // "undefined"
console.log(null === undefined) // false
console.log(null == undefined) // true
console.log(null === null) // true
console.log(null == null) // true
console.log(!null) // true
console.log(isNaN(1 + null)) // false
console.log(isNaN(1 + undefined)) // true
6. 심볼 타입
- 유일한 식별자를 만들고 싶을 때 사용
- 프로퍼티 키로 사용
- 생성시 new키워드를 사용하지 않는다. (ES6부터는 규정상 모든 원시타입 생성자를 임의 호출 할 수 없다.)
const s = Symbol()
const obj = { [s] : "심볼 입니다." }
console.log(obj[s])