Javascript

[모자딥]Number

2023. 11. 28. 22:39
목차
  1. 예제 28.14
  2. 에제 28.15
  3. 에제 28.16
  4. 에제 28.17
  5. 예제 28.18
  6. 예제 28.19
  7. 예제 28.20
  8. 예제 28.21
  9. 예제 28.22
  10. 예제 28.23
  11. 예제 28.24
  12. 예제 28.25
  13. 예제 28.26
  14. 예제 28.27
  15. 예제 28.28

예제 28.14

  • Number.isFinite메서드는 첫번째인자로 들어온 변수가 유한수인지 아닌지 판단함
  • 유한수 일때는 true 아닐때는 false를 반환함
Number.isFinite(0); // -> true
Number.isFinite(Number.MAX_VALUE); // -> true
Number.isFinite(Number.MIN_VALUE); // -> true

// 인수가 무한수이면 false를 반환한다.
Number.isFinite(Infinity); // -> false
Number.isFinite(-Infinity); // -> false

const Finite = (In) => {
  return Number.isFinite(In);
};

console.log(Finite(Infinity)); //false
console.log(Finite(-Infinity)); //false
console.log(Finite(0)); //true
console.log(Finite(NaN)); //false

에제 28.15

  • 인자가 NaN(Not a Number) 이면 언제나 false를 반환함
Number.isFinite(NaN); // -> false

에제 28.16

  • Number.isFinite메서드와 빌트인 전역함수 isFinite는 전달받은 인자를 숫자로 암묵적 타입변환 여부 차이가 존재함
  • Number.isFinite는 인자로 전달된 값을 숫자형으로 암묵적 타입 변환을 하지 않음
  • isFinite메서드는 인자로 전달된 값을 숫자형으로 암묵적으로 타입을 변환하여 실행
// Number.isFinite는 인수를 숫자로 암묵적 타입 변환하지 않는다.
Number.isFinite(null); // -> false
console.log(Number.isFinite('1')); // -> false
console.log(isFinite('1')); // -> true

// isFinite는 인수를 숫자로 암묵적 타입 변환한다. null은 0으로 암묵적 타입 변환된다.
console.log(isFinite(null)); // -> true
// true는 숫자로 변환하면 1이기 떄문에 true
console.log(isFinite(true)); // -> true
// false는 숫자로 변환하면 0이기 때문에 false
console.log(isFinite(false)); // -> true
console.log(Number.isFinite(null)); // -> false
console.log(Number.isFinite(true)); // -> false
console.log(Number.isFinite(false)); // -> false
console.log(Number(false) === 0) // -> true
console.log(Number(true) === 1) // -> true

에제 28.17

  •  Number.isInteger메서드는 인자로 들어온 값이 정수인지 아닌지 판단하여 불린 값으로 나타냄 true of false
  • Nubmer.isInterger메서드는 암묵적으로 타입을 변환하지 않으므로 인자로 들어온 값의 타입이 Number가 아니면 모두 false를 반환
// 인수가 정수이면 true를 반환한다.
Number.isInteger(0)     // -> true
Number.isInteger(123)   // -> true
Number.isInteger(-123)  // -> true

// 0.5는 정수가 아니다.
Number.isInteger(0.5)   // -> false
// '123'을 숫자로 암묵적 타입 변환하지 않는다.
Number.isInteger('123') // -> false
// false를 숫자로 암묵적 타입 변환하지 않는다.
Number.isInteger(false) // -> false
// Infinity/-Infinity는 정수가 아니다.
Number.isInteger(Infinity)  // -> false
Number.isInteger(-Infinity) // -> false
Number.isInteger(NaN) // -> false
console.log(Number.isInteger(Number.EPSILON))  // -> false
console.log(Number.isInteger(Number.MAX_SAFE_INTEGER))  // -> true

예제 28.18

  • Number.isNaN 메서드는 인자로 들어온 값이 NaN인지 아닌지 판단하는 메서드
// 인수가 NaN이면 true를 반환한다.
Number.isNaN(NaN); // -> true
console.log(Number.isNaN(Number('Hello'))); // -> false

예제 28.19

  • Number.isNaN은 인수를 숫자로 암묵적 타입 변환하지 않음
  • NaN만 true임
// Number.isNaN은 인수를 숫자로 암묵적 타입 변환하지 않는다.
console.log(Number.isNaN(undefined)); // -> false
console.log(Number.isNaN(true)); // -> false
console.log(Number.isNaN(null)); // -> false
console.log(Number.isNaN(false)); // -> false
console.log(Number.isNaN('hi')); // -> false

// isNaN는 인수를 숫자로 암묵적 타입 변환한다. undefined는 NaN으로 암묵적 타입 변환된다.
console.log(isNaN(undefined)); // -> true
console.log(isNaN('undefined')); // -> true
console.log(isNaN('123')); // -> false '123'을 숫자로 변환하면 NaN아님
console.log(isNaN(123)); // -> false

예제 28.20

  • Number.isSateInteger메서드는 인자로 전달된 값이 안전한 정수 인지 아닌지 판단하여 불린으로 나타냄
  • 인자로 들어온 값을 암묵적 타입 변환 하지 않음
Number.isSafeInteger(0); // -> true
// 1000000000000000은 안전한 정수이다.
Number.isSafeInteger(1000000000000000); // -> true

// 10000000000000001은 안전하지 않다.
Number.isSafeInteger(10000000000000001); // -> false
// 0.5은 정수가 아니다.
Number.isSafeInteger(0.5); // -> false
// '123'을 숫자로 암묵적 타입 변환하지 않는다.
Number.isSafeInteger("123"); // -> false
// false를 숫자로 암묵적 타입 변환하지 않는다.
Number.isSafeInteger(false); // -> false
// Infinity/-Infinity는 정수가 아니다.
Number.isSafeInteger(Infinity); // -> false
console.log(Number.isSafeInteger(Number.MAX_SAFE_INTEGER)); // -> true
console.log(Number.isSafeInteger(Number.MIN_SAFE_INTEGER)); // -> true
console.log(Number.isSafeInteger(Number.MIN_VALUE)); // -> false 자바스크립트로 표현할 수 있는 가장 작은 값

예제 28.21

  • toExponetial메서드는 숫자를 지수 표기법으로 변환하여 문자열로 반환함
  • 지수 표기법 : 매우 크거나 작은 수를 숫자로 표기할때 사용, e앞에있는 숫자에 10의 n승을 곱하는 형식으로 나타냄
(77.1234).toExponential(); // -> "7.71234e+1"
(77.1234).toExponential(4); // -> "7.7123e+1"
(77.1234).toExponential(2); // -> "7.71e+1"
console.log((66.423423).toExponential(5)); // -> "6.64234e+1"

예제 28.22

  • toExponetial메서드를 숫자리터럴과 함께 사용하면 에러 발생
  • 숫자 뒤의 .은 부동 소수점 숫자의 소수 구분 기호(77.123 처럼)일 수도 있고, 객체 프로퍼티에 접근하기 위한 프로퍼티 (Number. 처럼) 접근 연산자일 수도 있음
  • 자바스크립트엔진은 숫자 뒤의 .을 부동 소수점 숫자의 소수 구분기호로 해석함
  • 숫자뒤의 .을 소수 구분기호로 해석하면 뒤에 이어지는 toExponential메서드를 해석할 수 없으므로 에러발생
console.log((77).toExponential()); // -> 7.7e+1
77.toExponential(); // -> SyntaxError: Invalid or unexpected token

예제 28.23

  • 77.1234 뒤에오는 .은 부동 소수점을 나타내는 구분기호가 아닌 객체 프로퍼티에 접근하는 프로퍼티 접근연산자로 판단하여 오류 x
77.1234.toExponential(); // -> "7.71234e+1"

예제 28.24

  • 그룹 연산자를 사용하여 메서드 실행
(77).toExponential(); // -> "7.7e+1"

예제 28.25

  • 숫자는 정수 부분과 소수부분 사이에 공백을 포함할 수 없음
  • 숫자 뒤의 .뒤에 공백이 오면 .을 프로퍼티 접근 연산자로 해석함
77 .toExponential()

예제 28.26

  • toFixed메서드 숫자를 반올림하여 문자열로 반환
  • 0~20사이의 정수값을 인자로 전달가능
  • 기본값은 0
// 소수점 이하 반올림. 인수를 생략하면 기본값 0이 지정된다.
(12345.6789).toFixed(); // -> "12346"
// 소수점 이하 1자리수 유효, 나머지 반올림
(12345.6789).toFixed(1); // -> "12345.7"
// 소수점 이하 2자리수 유효, 나머지 반올림
(12345.6789).toFixed(2); // -> "12345.68"
// 소수점 이하 3자리수 유효, 나머지 반올림
(12345.6789).toFixed(3); // -> "12345.679"


console.log((1111.18456876).toFixed()) //"1111"
console.log((1111.18456876).toFixed(0)) //1111
console.log((1111.18456876).toFixed(5)) //1111.18457 반올림
console.log((1111.18456876).toFixed(4)) //1111.1846 반올림

예제 28.27

  • toPrecision메서드는 인자로 전달받은 전체자릿수 까지 유요하도록 나머지 자릿수 반올림
  • 0~21사이의 정수값을 인자로 전달
  • 기본값은 0
// 전체 자리수 유효. 인수를 전달하지 않으면 기본값 0이 전달된다.
(12345.6789).toPrecision(); // -> "12345.6789"
// 전체 1자리수 유효, 나머지 반올림
(12345.6789).toPrecision(1); // -> "1e+4"
// 전체 2자리수 유효, 나머지 반올림
(12345.6789).toPrecision(2); // -> "1.2e+4"
// 전체 6자리수 유효, 나머지 반올림
(12345.6789).toPrecision(6); // -> "12345.7"

예제 28.28

  • toString메서드는 숫자를 문자열로 반환하는 메서드
  • 인자로 진법을 나타내는 2진법~36진법까지 전달가능 
  • 기본 10진법
// 인수를 생략하면 10진수 문자열을 반환한다.
(10).toString(); // -> "10"
// 2진수 문자열을 반환한다. 숫자 16을 2진법으로 반환
(16).toString(2); // -> "10000"
// 8진수 문자열을 반환한다. 숫자 16을 8진법으로 반환
(16).toString(8); // -> "20"
// 16진수 문자열을 반환한다.
(16).toString(16); // -> "10"
//숫자 100을 2진법으로 반환
console.log((100).toString(2)); // -> "1100100"

'Javascript' 카테고리의 다른 글

[모자딥]Class  (0) 2023.12.02
[모자딥]Math  (0) 2023.11.28
[모자딥]Number  (1) 2023.11.27
[모자딥]프로퍼티 어트리뷰트 객체 변경 방지  (0) 2023.11.25
[모자딥]프로퍼티 어트리뷰트 16.07 ~ 16.08  (0) 2023.11.23
  1. 예제 28.14
  2. 에제 28.15
  3. 에제 28.16
  4. 에제 28.17
  5. 예제 28.18
  6. 예제 28.19
  7. 예제 28.20
  8. 예제 28.21
  9. 예제 28.22
  10. 예제 28.23
  11. 예제 28.24
  12. 예제 28.25
  13. 예제 28.26
  14. 예제 28.27
  15. 예제 28.28
'Javascript' 카테고리의 다른 글
  • [모자딥]Class
  • [모자딥]Math
  • [모자딥]Number
  • [모자딥]프로퍼티 어트리뷰트 객체 변경 방지
index.ys
index.ys
머리속에 떠도는 코드조각들을 맞추는 공간입니다.
index.ys
코린이 개발일지
index.ys
전체
오늘
어제

공지사항

블로그 메뉴

  • 홈
  • 방명록
  • Github
  • Notion
  • Figma
  • 타닥타닥 (235)
    • 개발일지 (124)
    • html , css (0)
    • Javascript (30)
    • Node.js (8)
    • React (2)
    • 네트워크 (1)
    • DB, SQL (5)
    • AWS (11)
    • CS (21)
    • 면접 (13)
    • 사진 (4)
    • 북로그 (3)
    • 머릿속 (5)

인기 글

최근 글

최근 댓글

hELLO · Designed By 정상우.
index.ys
[모자딥]Number
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.