JavaScript에서는 두 가지 작업을 통해 수학 작업을 구현할 수 있습니다.
1. +, -, *, /, % 및 기타 연산자.
2. 수학 객체의 계산 함수를 사용하십시오. 예를 들어, Math.Pow (2,3)를 사용하여 2 ~ 3의 전력을 계산하십시오.
Java와 달리 JavaScript의 수학 연산에는 오류가 발생하지 않습니다. 계산 결과의 오버플로는 0으로 나누고 제곱 된 음수 숫자는 모두 합법적이며 결과는 JavaScript의 특수 값입니다 : Plus 또는 Negative Infinity (Infinity), Plus 또는 Negative 0, NAN (NONBERT) :
1. 긍정적이고 부정적인 무한대. 계산 결과가 JavaScript가 나타내는 최대 숫자보다 큰 경우 (번호 .max_value) 결과는 양의 무한대입니다. 계산 결과가 javaScript가 나타낼 수있는 최소 숫자 (-number.max_value)보다 작은 경우 결과는 음의 무한대입니다. 무한대와 관련된 +, -, *및 /와 같은 수학적 연산은 고급 수학의 한계 계산 규칙을 따릅니다. 1/0의 결과는 양의 무한대이며 -1/0의 결과는 음의 무한대입니다.
2. 플러스 또는 마이너스 0. 계산 결과가 양수이지만 javaScript가 나타내는 최소 10 진수 (숫자. 계산 결과가 음수이지만 JavaScript가 나타낼 수있는 최대 음수 10 진수 (-number.min_value)보다 크면 결과는 음수입니다. 일반적으로 개발자는 Plus와 Minus 0의 차이에 대해 신경 쓰지 않아도됩니다.
3.nan. 긍정적이고 부정적인 무한대로도 표현할 수없는 일부 특별 계산 결과의 경우, JavaScript는 NAN을 사용하여이를 표현합니다 (NAN은 문자 그대로 "Non-Number"를 의미하지만 유형은 숫자임을 주목할 가치가 있습니다). 이 특별한 계산에는 다음이 포함됩니다.
1) .0/0.
2). infinity/Infinity.
3). 제곱 음수.
4). 숫자가 아닌 문자열에서 수치 변환 작업을 수행하십시오.
Infinity와 Nan의 경우, 이들은 "무한"및 "Non-Number"인쇄 결과이며, JavaScript 의이 두 가지 특수 값을 나타내는 글로벌 변수 이름이기도합니다. 실제로, ECMAScript 3에서,이 두 가지 글로벌 변수에는 다른 값도 할당 할 수 있습니다. 이 미친 규칙은 ECMAScript 5에서 수정 되어이 두 가지 글로벌 변수를 읽습니다. 인피니티 변수 및 NAN 변수에 직접 액세스하는 것 외에도 숫자 객체의 멤버 변수에 액세스 하여이 두 가지 특수 값을 사용할 수도 있습니다.
1. infinity는 number.positive_infinity와 동일합니다.
2. Infinity는 숫자와 동일합니다 .negative_infinity.
3.Nan은 숫자와 같습니다 .nan.
JavaScript에서 Nan은 흥미로운 특수 가치이며 특별한 속성을 갖습니다. 다른 값 (자체 포함)과 같지 않습니다. 값이 NAN인지 여부를 결정하는 두 가지 방법이 있습니다.
1. 변수 x의 경우 x! = x가 true인지 확인하십시오. 이 표현식은 x가 nan 인 경우에만 해당됩니다.
2. 변수 x의 경우 javaScript의 글로벌 함수 isnan ()을 호출하여 isnan (x)이 true인지 확인하십시오. 이 방법은 NAN이 실제로 엄격하지 않다고 결정합니다. 표현은 4 건에서 isnan (x)이 사실이기 때문입니다.
1) .x는 Nan입니다.
2) .x는 문자열이고 문자열은 숫자가 아닙니다.
3) .x는 객체입니다.
4) .x는 정의되지 않았습니다.
JavaScript에는 ISNAN () 외에도 또 다른 유용한 글로벌 기능이 있습니다. isfinite (). 변수 a의 경우 다음 경우 Isfinite (a)가 사실입니다.
1) .a는 숫자이지만 NAN 또는 양수 및 부정적인 무한대는 아닙니다.
2) .a는 문자열이지만 문자열의 내용은 비 냉수, 비 양성 인피니티 번호입니다.
3) .a는 null입니다.
4) .a는 부울 가치입니다.
NULL 및 UNDEFIND와 같은 비 숫자 유형은 결과에 영향을 미치기 때문에 ISNAN () 또는 ISFINITE ()를 사용하기 전에 매개 변수 유형을 판단하는 것이 가장 좋습니다.
실험
코드 사본은 다음과 같습니다.
// 무한대 테스트
var a = number.max_value;
Console.log (A*1.1); // 인피니티
Console.log (a*-1.1); //-인피니티
Console.log (1/0); // 무한대
Console.log (-1/0); //- 인피니티
// 긍정적/음수 0을 테스트합니다
var b = number.min_value;
Console.log (b/2); // 0
Console.log (-B/2); // 0
// nan을 테스트합니다
Console.log (0/0); // nan
Console.log (Infinity/Infinity); // nan
Console.log (Math.sqrt (-1)); // nan
console.log (parseint ( "String")); // nan
// 무한대 비교를 테스트합니다
console.log (Infinity === 숫자. positive_infinity); // true
console.log (-infinity === 번호 .negative_infinity); // true
// 테스트 NAN 비교
console.log (nan === nan); // false
// test isnan ()
Console.log (isnan (nan)); // true
Console.log (Isnan ( "42")); // false
console.log (isnan ( "String")); // true
console.log (isnan ({})); // true
console.log (isnan (undefined)); // true
console.log (isnan (null)); // false
// 테스트 isfinite ()
Console.log (Isfinite (42)); // true
Console.log (Isfinite (Infinity)); // false
console.log (isfinite (nan)); // false
Console.log (Isfinite ( "29")); // true
console.log (isfinite ( "String")); // false
console.log (isfinite (null)); // true
console.log (isfinite (undefined)); // false
console.log (isfinite (true)); // true
console.log (isfinite (false)); // true