JavaScript를 시작하면서 유의점.!
( )
: parenthesis 또는 round brackets, { }
: curly brackets, [ ]
: square brackets)NaN(Not a Number)
숫자가 아님이라는 약어이지만 숫자이다. (암기!★)
typeof NaN // "number"
'바나나' - '사과' // NaN
문자열을 숫자로 형변환
parseInt() : 정수로 바꾸다
Number() : 정수 또는 소수로 바꾸다
typeof parseInt('123'); // "number"
parseInt('123') // 123
parseFloat('3.14') // 3.14
Number('123') // 123
Number('3.14') // 3.14
parseInt('3월') // 3
Number('3월') // NaN
Number가 정수와 소수로 모두 형변환 가능하다는 점으로 인해 가장 좋다고 말할 수 없다.
동일한 기능을 하는 문법을 이유 없이 2가지씩 만들지 않는다.
parseInt와 Number가 각각 존재하는 이유는 이름이 다르고 다른 역할을 한다고 생각하자.
(Infinity(무한) - 숫자형 자료형 중 하나. 잘쓰이지 않음
typeof Infinity => "number")
문자열과 숫자 자료형끼리 계산이 이루어진 경우,
사칙연산 중 더하기( + )는 문자열 자료형이 우선시되어 '다른 자료형이 문자열 자료형으로 형변환'되어 계산된다.
빼기( - ), 곱하기( * ), 나누기( / )는 문자열과 같은 '다른 자료형이 숫자형으로 형변환'되어 계산된다.
컴퓨터는 0과 1로만 이루어져 작업하는데 0.1, 0.2 같은 소숫점을 나타내기 어려워 계산 결괏값이 이상하게 나온다. (부동소수점 참고)
소수로 계산할 때는 (10이나 100을 곱해) 정수로 먼저 계산하고 마지막에 (10이나 100을 나눠) 나눠 소수로 돌려준다.