- 기본 자료형 (Primitive)
- Number
- String
- Boolean
- Undefined
- Null
- Symbol (ECMAScript 6 에 추가됨)
- 객체 타입 (object / reference type)
- Object
let integer = 10; //10진수 let hex = 0xa; //16진수 let binary = 0b1010; //2진수 let octal = 0o12; //8진수
console.log(integer, hex, binary, octal); //10, 10, 10, 10 console.log(negative, indices, double); //-10 10 10.12
- 숫자의 형태의 상관없이 모두 10진수로 변환되어 출력된다.
let IsInfinity = 10 / 0; let IsNaN = 10 / "일";
console.log(IsInfinity, IsNaN); // Infinity NaN
- javascript 코드에서 변수 IsInfinity의 수식처럼 무한한 값이 출력될 경우 Infinity라는 값이 출력이 된다.
- 변수 IsNaN처럼 숫자를 문자로 나눈는 것과 같은 말도 안되는 수식에는 NaN이 출력이 된다.
let sum = 0.1 + 0.2; console.log(sum); //0.30000000000000004
- 컴퓨터는 수식을 계산할 때 2진법으로 변환하여 계산하게 되는데, 1의 경우 2진법으로 나타내면 001100110011...무한이 반복이 된다. 그렇기 때문에 예제의 수식을 계산하게 되면 0.30000000000000004이 출력이 된다.
console.log("hello".length); // 5
let a = "123"; let b = "456"; console.log(a+b); //123456
let a = "123"; let b = "abc"; console.log(a+b); //123abc
'<div~>' + 2 + 3 + '' => '<div~>2' + 3 + '' => '<div~>23' + '' => '<div~>23'
let a = "123"; console.log(a[1]); //2
<script> document.write(1===1); </script>
<script> document.write(1===2); </script>
두 코드 모두 웹페이지에 출력하면
1===1는 true로 출력되고
1===2는 false로 출력된다
---> ture, false 값을 묶어서 boolean 이라고 한다.
let a; console.log(a); //undefined
- 예제를 출력해보면 변수 a의 값이 없기 때문에 undefined가 출력된다.
- javascript 엔진에서 자동으로 undefined 값이 부여되기 때문에 아래의 예제처럼 코드를 작성하지는 않는다.
let a = undefined; console.log(a);
let a = null; console.log(a); //null
const a = Symbol(); const b = Symbol();
console.log(a); console.log(b); //Symbol() //Symbol()
- 변수 a,b를 선언하고 값을 출력하면 Symbol() 값이 출력되지만 일치연산자로 확인 해보면 false 값이 출력되게 된다.
console.log(a===b); console.log(a==b); //false //false