숫자는 따로 따옴표를 쓰지 않아도 된다.
5e-4
결과 : 0.0005
5e3
결과 : 5000
0b111
결과 : 7
2진법은 0b가 앞에 붙는다.
0111
결과 : 73
8진법은 0이 앞에 붙는다.
0x1a1
결과 : 417
16진법은 0x가 앞에 붙는다.
typeof을 이용해 NaN의 정체를 파악해보니,
typeof(NaN)
결과 : Number
Number가 나온다. 황당하게도, 2-3에서 문자열끼리 빼거나 곱하거나 나눴을때 NaN이 나왔다.
NaN은 Not a Number의 약자로, 숫자가 아니라고 했는데 어떻게 Number이지?
이런건 외워야 한다. 결론은 NaN은 공식적으로 Number이다.
parse 는 분석하다 라는 의미로서, 그 뒤 Int로 분석한다라는 의미로 해석하면 된다.
그 말 즉, parseFloat는 Float형으로 분석한다는 의미이다.
초보 단계에서는 정확히 확인을 해야 한다. 감을 믿지 말자.
'123' + 5의 결과는 1235가 된다. 129가 나올 것 같지만 아니다. 왜냐하면, 문자열과 숫자의 합이기 때문이다.
다시 말하지만, '123'은 문자열 123이다. 숫자가 아니다. parseInt를 이용해 숫자로 바꿔보겠다.
parseInt('123')
결과 : 123
문자열 '123'이 숫자 123으로 바뀌었다.
typeof parseInt('123')
결과 : number
parseInt('123') + 5
결과 : 129
parseInt('3.14')
결과 : 3
parseFloat('3.14')
결과 : 3.14
Number로도 parseInt 또는 ParseFloat의 역할을 할 수 있다. 하지만 두 개 각각의 기능이 완전히 똑같았다면, 하나로 통일 했을 것이다. 두 개의 기능은 다르다.
parseInt('3월')
결과 : 3
parse = 분석하다
최대한 분석하여 Int의 3을 출력했지만,
Number('3월')
결과 : NaN
Number는 숫자가 아닌게 있으니까 가차없이 NaN을 때린다.
parseInt('숫자', 2)
prompt는 문자열을 입력 받는 것이다.
숫자로 바꿔라 !
typeof parseInt(prompt());
실행했을때, 직접 입력하는 창이 뜬다.
여기에 입력해서 결과를 얻는 것이다.