TIL_20210404

ChungsikPark·2021년 4월 4일
0

TIL

목록 보기
25/31

isFinite와 isNaN

  • 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와 ===

  • Object.is===처럼 값을 비교할 때 사용되는 특별한 내장 메서드

  • 아래와 같은 두 가지 에지 케이스에선 ===보다 좀 더 신뢰할만한 결과

    1. NaN을 대상으로 비교할 때: Object.is(NaN, NaN) === true
    2. 0-0이 다르게 취급되어야 할 때: Object.is(0, -0) === false

parseInt와 parseFloat

  • 두 함수는 불가능할 때까지 문자열에서 숫자를 읽고, 숫자를 읽는 도중 오류가 발생하면 이미 수집된 숫자를 반환

  • 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
profile
Blog by Chungsik Park

0개의 댓글