웹 프론트엔드 JS 튜토리얼 수학 네임스페이스 및 BigInt

수학 네임스페이스 및 BigInt

Sep 13, 2024 pm 10:19 PM

Math Namespace & BigInt

Math.sqrt, 즉 sqrt는 Math 네임스페이스의 일부입니다.

// 제곱근을 구하는 2가지 방법
Math.sqrt(100); // 10, 방법 1
100*(1/2); // 10, 방법 2
8
*(1/3); // 2, 3차근에도 작동합니다

Math.max() & Math.min():

Math.max(23,54,12,6,32,98,87,34,11); // 98
// 유형 강제도 수행됩니다
Math.min(23,54,12,'6',32,98,87,34,11); // 6
// 파싱을 하지 않습니다
Math.min(23,54,12,'6px',32,98,87,34,11); // NaN

Math 객체에 내장된 상수:

Math.PI * (Number.parseFloat('10px')**(2)); // 지역 가져오기

흑백 1~6을 생성합니다.

Math.trunc(Math.random() * 6) 1;

상하한선 없이 무작위를 생성합니다.

const randomInt = (최소, 최대) => Math.floor(Math.random() * (최대-최소)) 1분;
무작위Int(10,20);

// Math.method()는 모두 강제를 입력합니다.
Math.trunc(25.4); // 25
Math.round(25.4); // 25
Math.floor(25.4); // 25
Math.ceil(25.4); // 26

Math.floor는 음수에 더 나은 선택입니다.

Math.trunc(-25.4); // -25
Math.floor(-25.4); // -26

// 소수 반올림: .toFixed는 숫자가 아닌 문자열을 반환합니다
(2.5).toFixed(0); // '3'
(2.5).toFixed(3); // '2.500'
(2.345).toFixed(2); // '2.35'

// 단항 기호를 추가하여 아니오로 변환합니다.
(2.345).toFixed(2); // 2.35

// Number는 기본 요소이므로 메서드가 없습니다. 따라서 뒤에서 JS는 박싱을 수행합니다. 즉, 기본 요소를 객체 없음으로 변환하고 작업을 수행한 다음 작업이 완료되면 다시 기본 요소로 변환합니다.

모듈식 또는 나머지 연산자:

5% 2; // 1

8% 3; // 2
8/3; // 2.6666666666666665

//홀수 또는 짝수
const isEven = n => n%2 === 0;
isEven(20);
isEven(21);
isEven(22);

사용 사례: 모든 홀수 행, 짝수 행, n번째 등의 작업에 사용됩니다.

숫자 구분 기호: [ES2021]

매우 큰 숫자를 나타내는 데 사용됩니다
숫자 사이에 들어갈 수 있는 밑줄입니다. 엔진은 이러한 밑줄을 무시하므로 개발자의 혼란이 줄어듭니다.
전. const 직경 = 287_460_000_000;
지름; // 287460000000

정가 = 342_25;
가격; // 34225

const fee1 = 1_500;
const fee2 = 15_00;
수수료1 === 수수료2; //참

밑줄은 숫자 사이에만 넣을 수 있습니다.
소수점 옆에 위치할 수 없습니다.
또한 번호의 시작이나 끝에 위치할 수 없습니다.

const PI = 3.14_15;
PI; // 3.1415

모두 숫자 구분 기호의 잘못된 예입니다.

const PI = 3.1415; //처음에 들어갈 수 없습니다.
const PI = 3.1415
; // 마지막에 넣을 수 없습니다.
const PI = 3_.1415; // 소수점 옆에 위치할 수 없습니다.
const PI = 3.1415; // 소수점 옆에 위치할 수 없습니다.
const PI = 3.
_1415; // 2개 연속으로 배치할 수 없습니다.

문자열을 숫자로 변환:

숫자('2500'); // 2500
번호('25_00'); // NaN , 따라서 변수에 숫자를 직접 할당할 때만 사용할 수 있습니다. 따라서 문자열에 아니요가 저장되어 있거나 API에서 아니요를 얻는 경우 오류를 방지하려면 '_' 숫자 구분 기호를 사용하지 마세요.
parseInt도 마찬가지입니다. 즉, _ 이후의 모든 항목은 아래와 같이 삭제됩니다.
parsInt('25_00'); // 25

BigInt

ES2020에 도입된 특수 유형의 정수
숫자는 내부적으로 64비트, 즉 64개의 1 또는 0으로 표시되어 모든 숫자를 나타냅니다. 53개만 숫자를 저장하는 데 사용되고 나머지는 소수점 위치와 부호를 저장하는 데 사용됩니다. 따라서 숫자의 크기에는 제한이 있습니다((2*53) - 1). 이는 JS가 안전하게 나타낼 수 있는 가장 큰 아니오입니다. 저장하는 동안 바이너리 형식으로 작업하기 때문에 밑수는 2입니다.
2
*53 - 1; // 9007199254740991
번호.MAX_SAFE_INTEGER; // 9007199254740991

이보다 큰 것은 안전하지 않습니다. 즉, 정확하게 표현할 수 없습니다. 마지막 숫자에 표시된 것처럼 이보다 큰 숫자의 경우 정밀도가 손실됩니다. 때로는 작동할 수도 있고 때로는 작동하지 않을 수도 있습니다.
번호.MAX_SAFE_INTEGER 1; // 9007199254740992
번호.MAX_SAFE_INTEGER 2; // 9007199254740992
번호.MAX_SAFE_INTEGER 3; // 9007199254740994
번호.MAX_SAFE_INTEGER 4; // 9007199254740996

이보다 큰 API에서 더 큰 no를 받으면 JS가 이를 처리할 수 없습니다. 따라서 위의 문제를 해결하기 위해 ES2020에서는 BigInt라는 새로운 기본 데이터 유형이 도입되었습니다. 이는 우리가 원하는 만큼 큰 정수를 저장할 수 있습니다.

no 끝에 'n'을 추가하여 BigInt로 만듭니다. 예
const 숫자 = 283891738917391283734234324223122313243249821n;
숫자; // 283891738917391283734234324223122313243249821n

BigInt는 이렇게 큰 숫자를 표시하는 JS 방식입니다.
BigInt 번호를 생성하기 위해 생성자 Fn을 사용하는 또 다른 방법입니다.
const x = BigInt(283891738917391283734234324223122313243249821);
엑스; // 283891738917391288062871194223849945790676992n

연산: 모든 산술 연산자는 BigInt와 동일하게 작동합니다.
const x = 100n 100n;
엑스; // 200n

const x = 10n * 10n;
엑스; // 100n

BigInt 숫자와 일반 숫자를 혼합하지 마세요.

const x = 100n;
const y = 10;
z = x*y; // 오류

작동시키려면 BigInt 생성자 Fn을 사용하세요.
z = x * BigInt(y);
지; // 1000n

비교 연산자와 단항 연산자는 예외입니다.

20n > 19; //참
20n === 20; // false, === JS가 유형 강제를 수행하는 것을 방지합니다. LHS와 RHS 모두 기본 유형이 다르므로 결과는 'false'입니다.

20n 유형; // 'bigint'
유형 20; // '숫자'

20n == 20; // true, JS는 BigInt를 일반 숫자로 변환하여 유형이 아닌 값만 비교하도록 강제 유형을 지정합니다.
이것도 마찬가지입니다: 20n == '20'; //참

예외:

연산자를 사용해도 BigInt 숫자가 문자열로 변환되지 않습니다.
const 숫자 = 248923874328974239473829n
"num이 엄청납니다. 즉, " num; // '숫자는 엄청납니다. 즉, 248923874328974239473829'

참고:
Math.sqrt는 BigInt와 작동하지 않습니다.
BigInt를 나누는 동안 소수 부분을 버립니다.
10/3; // 3.3333333333333335
10n / 3n; // 3n
12n / 3n; //4n

이 새로운 기본 유형은 JS 언어에 몇 가지 새로운 기능을 추가하여 엄청난 숫자로 작동하도록 합니다.

위 내용은 수학 네임스페이스 및 BigInt의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

JavaScript로 문자열 문자를 교체하십시오 JavaScript로 문자열 문자를 교체하십시오 Mar 11, 2025 am 12:07 AM

JavaScript로 문자열 문자를 교체하십시오

사용자 정의 Google 검색 API 설정 자습서 사용자 정의 Google 검색 API 설정 자습서 Mar 04, 2025 am 01:06 AM

사용자 정의 Google 검색 API 설정 자습서

예제 색상 JSON 파일 예제 색상 JSON 파일 Mar 03, 2025 am 12:35 AM

예제 색상 JSON 파일

8 멋진 jQuery 페이지 레이아웃 플러그인 8 멋진 jQuery 페이지 레이아웃 플러그인 Mar 06, 2025 am 12:48 AM

8 멋진 jQuery 페이지 레이아웃 플러그인

10 JQuery Syntax Highlighter 10 JQuery Syntax Highlighter Mar 02, 2025 am 12:32 AM

10 JQuery Syntax Highlighter

자신의 Ajax 웹 응용 프로그램을 구축하십시오 자신의 Ajax 웹 응용 프로그램을 구축하십시오 Mar 09, 2025 am 12:11 AM

자신의 Ajax 웹 응용 프로그램을 구축하십시오

' this ' 자바 스크립트로? ' this ' 자바 스크립트로? Mar 04, 2025 am 01:15 AM

' this ' 자바 스크립트로?

10 JavaScript & JQuery MVC 자습서 10 JavaScript & JQuery MVC 자습서 Mar 02, 2025 am 01:16 AM

10 JavaScript & JQuery MVC 자습서

See all articles