자바스크립트는 모든 숫자를 64비트 부동 소수점 형태로 저장하기 때문에,하나의 숫자형만 존재한다.
const intNum = 10; const floatNum = 0.1; console.log(typeof intNum, typeof floatNum); // number number
const로 선언된 변수에는 정수,실수의 구분없이 저장할 수 있으며, 두 변수 모두 typeof 연산자의 결과값은 number 타입이다.
모든 숫자를 실수로 처리하기 때문에, 자바스크립트에서 나눗셈 연산을 할 때 주의해야한다. 아래 예제를 살펴보자.
const num = 5/2; console.log(num); // 2.5 console.log(Math.floor(num)); // 2
5와 2 모두 실수로 취급되므로 소수 부분까지 출력된 2.5가 결과값이 된다. 특히 C언어에 익숙한 개발자라면 특별히 주의해야한다.본인처럼 파이썬을 공부했다면 상관없을듯..
정수부분만 취하기 위해서는 Math.floor() 메서드를 사용하면 된다!
자바스크립트는 true, false 값을 나타내는 불린 타입을 가진다.
const boolVar1 = true; const boolVar2 = false; console.log(typeof(boolVar1),typeof(boolVar2)) // boolean boolean
문자열은 작은 따옴표(')나 큰따옴표(")로 생성한다. 자바스크립트에서 한번 생성된 문자열은 변하지 않는다.
const str = 'abcde'
console.log(str[0]); // a
str[0] = 'f'
console.log(str); // abcde
인덱스를 이용하여 접근 할 수 있고, 수정은 불가능하다.
자바스크립트에서 이 두 타입은 모두 '값이 비어있음'을 나타낸다. 자바스크립트 환경 내에서 기본적으로 값이 할당되지 않은 변수는 undefined 타입이며, undefined 타입의 변수는 변수자체의 값 또한 undefined 이다.
const nullVar = null; console.log(emptyVar); // undefined console.log(typeof(emptyVar)); // undefined console.log(typeof(nullVar)); // object
emptyVar에 아무런 값도 할당 되지 않았기 때문에, emptyVar의 값은 undefined이고, 그 타입 또한 undefined이다. 이처럼, 자바스크립트에서 undifined는 타입이자 값을 나타낸다.
const nullVar = null; console.log(typeof(nullVar) === null); //false console.log(nullVar === null); //true
반면에, nullVar 변수와 같이 null 타입 변수의 경우는 개발자가 명시적으로 값이 비어있음을 나타내는데 사용한다. 여기서 주의할 점은 null 타입 변수인 nullVar의 typeof 결과가 null이 아닌 object라는 것이다. 때문에, null 타입 변수인지 확인할 때는, 일치 연산자(===)를 사용하여 비교한다.