반응형
자바스크립트 원시 타입(primitive data type)은 숫자, 문자열, boolean, undefined, null 이 있다.
이때 각각의 타입이 예상과는 다른 결과를 낼때가 있다.
1. 숫자
자바스크립트에서 숫자는 정수, 실수, 2진수에서 36진수까지 다양하게 표현가능하다.
console.log(typeof 255); //number : 10진수 console.log(typeof 255.0); //number : 실수 console.log(typeof 0377); //number : 8진수 console.log(typeof 0xff); //number : 16진수
여기까지는 너무나 당연한 이야기인데,
자바스크립트에서는 자동형변환 기능으로 인해서 문자열타입과 숫자 타입을 쉽게 오갈수 있다.
var temp = "2"; temp += 10; console.log("타입: "+typeof temp +" 결과값: "+temp); //문자열 + 숫자 = 문자 var temp = "2"; temp *= 10; console.log("타입: "+typeof temp +" 결과값: "+temp); //문자열 * 숫자 = 숫자
위 방법이 가장 쉬운 문자열<->숫자 형변환 방식이긴 한데, 이 같은 경우 자바스크립트를
처음 시작하는 분들이 코드의 의도를 파악하기가 어렵다. 협업해야하는 코드내에서는
위와 같은 코드 방식 보다는 좀 더 가독성이있고, 명시적인 형변환을 추천한다.
vvar temp2 = "2"; temp2 = Number(temp2); console.log(typeof temp2); //숫자형 number var temp2 = 2; temp2 = String(temp2); console.log(typeof temp2); //문자열 String
1-1. Infinity
자바스크립트에는 최대 숫자를 벗어나는 숫자를 표현하기 위해 Infinity(한글로 번역하면 무한대) 라고 하는 값이 정의되어 있다.
Infinity 는 그 정의에 맞게 타입이 number로 나온다.
Infinity는 최대 숫자를 벗어난걸 표현하고, 최소 숫자를 벗어날걸 표현하기 위해서는 -Infinity 로 작성하면 된다.
console.log(typeof Infinity); //number var infi = 1/0; console.log(typeof infi); //number var infi = -Infinity; console.log(typeof infi); //number
반응형