В JavaScript математические операции могут быть реализованы через две операции:
1. +, -, *, /, % и другие операторы.
2. Используйте функцию расчета математического объекта. Например, используйте Math.pow (2,3) для расчета мощности от 2 до 3.
В отличие от Java, математические операции в JavaScript не бросают никаких ошибок. Переполнение результата расчета, делящих на 0, и квадратные отрицательные числа являются законными, и результатом является особое значение в JavaScript: плюс или отрицательная бесконечность (бесконечность), плюс или отрицательный 0, NAN (NOCERTEAR):
1. Положительная и отрицательная бесконечность. Когда результат расчета больше, чем максимальное число, которое может представлять JavaScript (number.max_value), результатом является положительная бесконечность; Когда результат расчета меньше минимального числа, которое может представлять JavaScript (-number.max_value), результатом является отрицательная бесконечность. Математические операции, такие как +, -, *и / / связанные с бесконечностью, все следуют правилам расчета предела в расширенной математике. Результатом 1/0 является положительная бесконечность, а результатом -1/0 является отрицательная бесконечность.
2. Плюс или минус 0. Когда результат расчета положительный, но меньше, чем минимальный десятичный (number.min_value), который может представлять JavaScript, результат положительный 0; Когда результат расчета отрицательный, но больше, чем максимальный отрицательный десятичный десятичный (-number.min_value), который может представлять JavaScript, результат отрицательный 0. Как правило, разработчикам не нужно заботиться о разнице между плюсом и минус 0.
3.nan. Для некоторых специальных результатов расчета, которые не могут быть представлены даже при положительной и отрицательной бесконечности, JavaScript использует NAN для их представления (стоит отметить, что, хотя NAN буквально означает «не нулечный», его тип-число). Эти специальные расчеты включают:
1) .0/0.
2) .infinity/Infinity.
3). Квадратные отрицательные числа.
4). Выполните численные операции преобразования на нечисленных строках.
Для Infinity и NAN они являются «бесконечными» и «неметровыми» результатами печати, а также являются глобальными именами переменных, представляющих эти два специальных значения в JavaScript. Фактически, в Ecmascript 3 этим двум глобальным переменным также можно присвоить другие значения; Это сумасшедшее правило было исправлено в Ecmascript 5, чтобы сделать эти две глобальные переменные только для чтения. В дополнение к непосредственному доступу к переменной Infinity и NAN -переменной, вы также можете использовать эти два специальных значения, получив переменные элемента объекта Number:
1. Различность эквивалентна number.positive_infinity.
2. Беспотребление эквивалентно number.negative_infinity.
3.nan эквивалентен номеру.nan.
В JavaScript NAN является интересным специальным значением, которое имеет специальное свойство: она не равна никакой другой ценности (включая себя). Есть два способа определить, является ли значение NAN:
1. Для переменной x определите, является ли x! = X true. Это выражение верно только в том случае, если x - NAN.
2. Для переменной x вызовите глобальную функцию isnan () в JavaScript, чтобы определить, является ли Isnan (x) истинной. Этот метод определяет, что NAN на самом деле не является строгим, потому что выражение Isnan (x) верно в 4 случаях:
1) .x - НАН.
2) .x - это строка, а строка не является числом.
3) .x - объект.
4) .x не определен.
В дополнение к ISNAN (), JavaScript имеет еще одну полезную глобальную функцию: isfinite (). Для переменной a Isfinite (a) верно в следующих случаях:
1) .a - это число, но не НАН или положительная и отрицательная бесконечность.
2) .a-это строка, но содержание строки-это не нановый, неспособный номер бесконечности.
3) .a null.
4) .a - логическое значение.
Поскольку ненужные типы, такие как нулевые и неопределенные, будут влиять на результат, я лично считаю, что лучше судить тип параметра перед использованием Isnan () или iSfinite ().
эксперимент
Кода -копия выглядит следующим образом:
// Проверка бесконечности
var a = number.max_value;
Console.log (a*1.1); // Бесконечность
Console.log (a*-1.1); //-Бесконечность
Консоль.log (1/0); // Бесконечность
Console.log (-1/0); //-Бесконечность
// Проверка положительного/отрицательное 0
var b = number.min_value;
Console.log (b/2); // 0
Console.log (-b/2); // 0
// Проверка Нэн
Console.log (0/0); // NAN
Console.log (Infinity/Infinity); // NAN
console.log (math.sqrt (-1)); // nan
console.log (parseint ("string")); // nan
// Проверка бесконечности сравнения
console.log (Infinity === number.positive_infinity); // true
console.log (-infinity === number.negative_infinity); // true
// Проверка сравнения NAN
Console.log (nan === nan); // false
// тест isnan ()
Console.log (Isnan (NAN)); // TRUE
console.log (isnan ("42")); // false
console.log (isnan ("string")); // true
console.log (isnan ({})); // true
console.log (Isnan (неопределенное)); // 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 (неопределенная)); // false
console.log (iSfinite (true)); // true
console.log (iSfinite (false)); // true