isFinite(value)
– 인수를 숫자로 변환하고 변환한 숫자가 NaN/Infinity/-Infinity
가 아닌 일반 숫자인 경우 true
를 반환함
빈 문자열이나 공백만 있는 문자열은 isFinite
를 포함한 모든 숫자 관련 내장 함수에서 0
으로 취급
// Example 1)
alert( isFinite("15") ); // true
alert( isFinite("str") ); // false, NaN이기 때문
alert( isFinite(Infinity) ); // false, Infinity이기 때문
// Example 2)
let num = +prompt("숫자를 입력하세요.", '');
// 숫자가 아닌 값을 입력하거나 Infinity, -Infinity를 입력하면 false 출력
alert( isFinite(num) );
Infinity
와 -Infinity
– 그 어떤 숫자보다 큰 혹은 작은 특수 숫자 값
NaN
– 에러를 나타내는 값
isNaN(value)
– 인수를 숫자로 변환한 다음 NaN
인지 테스트함
alert( isNaN(NaN) ); // true
alert( isNaN("str") ); // true
alert( NaN === NaN ); // false
Object.is
는 ===
처럼 값을 비교할 때 사용되는 특별한 내장 메서드
아래와 같은 두 가지 에지 케이스에선 ===
보다 좀 더 신뢰할만한 결과
NaN
을 대상으로 비교할 때: Object.is(NaN, NaN) === true
0
과 -0
이 다르게 취급되어야 할 때: Object.is(0, -0) === false
두 함수는 불가능할 때까지 문자열에서 숫자를 읽고, 숫자를 읽는 도중 오류가 발생하면 이미 수집된 숫자를 반환
parseInt
는 정수, parseFloat
는 부동 소수점 숫자를 반환
alert( parseInt('100px') ); // 100
alert( parseFloat('12.5em') ); // 12.5
alert( parseInt('12.3') ); // 12, 정수 부분만 반환
alert( parseFloat('12.3.4') ); // 12.3, 두 번째 점에서 숫자 읽기를 멈춤
alert( parseInt('a123') ); // NaN, a는 숫자가 아니므로 숫자를 읽는 게 중지
parseInt(str, radix)
- parseInt()의 두 번째 매개 변수는 선택적으로 사용radix
는 원하는 진수를 지정해 줄 때 사용alert( parseInt('0xff', 16) ); // 255
alert( parseInt('ff', 16) ); // 255, 0x가 없어도 동작합니다.
alert( parseInt('2n9c', 36) ); // 123456