e뒤에3을 붙이면 0 3개가 뒤에 붙는다
1e3은 그래서 1000과 같음
반대로 e뒤에 -숫자를 붙이면 왼쪽으로 숫자만큼 소숫점 이동함
그래서 1e-6은 0.000001과 같음
16진수 표현 방법
2진수 , 8진수 표현 방법
표현 방법은 다르지만 수는 같으니까 같다고 나옴(신기)
num.toString(base)
에서 base는 몇 진수인지를 나타낼지를 의미 함.
숫자 255를 base진법으로 표현한 후, 이를 문자형으로 변환해 버림.
base의 default값은 10
이다.
base에 넣을 수 있는 수는 2~36까지인데,
base=36 (36진수) 활용
36진수의 경우 알파벳 전체가 숫자를 나타내는 데 사용된다.
url을 줄이는것과 비슷하게 숫자로 된 긴 식별자를 짧게 줄일 때 사용함
toFixed는 가장 가까운 값으로 올림 혹은 버림해주고 , 문자열로 반환함.
toFixed를 이용하고 나서 다시 넘버타입으로 바꿔주면
숫자타입으로 쓸 수 있다.
무한 소수를 방지 하는데 toFixed가 쓰인다??
0.1 + 0.2 는 당연히 0.3일줄 알고 계산해봤더니, 이런 숫자가 나온다.
이렇게 나오는 이유는 0.1과 같은 숫자는 2진수로 변환되어 메모리에 저장이 되는데,
소숫점은 2진수로 표현하면 무한소수가 된다.
그래서 저런 결과가 나오는데, 저 현상을 해결해줄 수 있는게 toFixed임
이렇게 활용하면 무한 소수를 방지 할 수 있음.
isNaN(value)
value를 Number타입으로 변환 후 , NaN인지 테스트 하는 메서드임
Number 타입으로 바꿔서 NaN가 안나오면 isNaN은 false를 반환함
반대로 Number 타입으로 바꿔서 NaN이 나오면 true를 반환함
isFinite(value)
value를 숫자로 변환하고 ,
변환한 숫자가 NaN
, Infinity
, -Infinity
가 아닌 일반 숫자인 경우
true를 반환함
문자열이 일반 숫자인지 검증하는데 사용되기도 함.(isNaN이랑 비슷함)
주의 해야 할 점
이렇게 빈 문자열이나 공백만 있는 문자열은 inFinite
를 포함한 모든 숫자 관련
내장 함수에서 0
으로 취급됨. 그래서 저렇게 넣으면 true
가 나옴
Object.is
메서드는 ===
보다 더 신뢰할만할 결과를 보여줌.
비트가 모두 0이더라도 부호를 나타내는 비트는 다르므로
0과 -0은 사실 다른 값이긴 함.
근데 보통 0 === -0은 true로 나옴
이런식의 비교는 자바스크립터 명세서에 SameValue
라고 나와있음.
Object.is
는 비교 결과가 엄밀하게 정확해야 하는 경우 쓰임.
'19€
, '100px'
, '12pt'
문자열 안에 정수인 숫자가 있을 경우
parseInt로 정수만 걸러 낼 수 있다.
'12.5em'
, 12.3.4
문자열 안에 실수인 숫자가 있을 경우
parseFloat로 실수만 걸러 낼 수 있다.
문자를 만나기 전까지만 변환해준다.
parseInt(str , radix) 두번째 인수로
16진수, 2진수, 36진수 등등 문자열을 파싱할수 있음.