목차
예제 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 |
예제 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 |