--- title: Math.max() slug: Web/JavaScript/Reference/Global_Objects/Math/max tags: - JavaScript - Math - Довідка - метод translation_of: Web/JavaScript/Reference/Global_Objects/Math/max ---
{{JSRef}}

Фукнція Math.max() повертає найбільше значення із довільної кількості (0 та більше) аргументів.

{{EmbedInteractiveExample("pages/js/math-max.html")}}

Синтаксис

Math.max([value1[, value2[, ...]]])

Аргументи

value1, value2, ...
Числа.

Результат

Найбільше із даних чисел. Якщо хоча б один із аргументів неможливо привести до числового типу - буде повернуто {{jsxref("NaN")}}.

Опис

У зв'язку з тим, що max() - це статичний метод Math, слід завжди викликати його як Math.max(), аніж як метод створеного вами об'єкту Math (оскільки Math не являється конструктором).

Якщо не дано жодного аргумента, результатом буде -{{jsxref("Infinity")}}.

Якщо щонайменше один із аргументів не можна привести до числового типу, то результатом буде {{jsxref("NaN")}}.

Приклади

Застосування Math.max()

Math.max(10, 20);   //  20
Math.max(-10, -20); // -10
Math.max(-10, 20);  //  20

Отримання найбільшого з елементів масиву

{{jsxref("Array.prototype.reduce", "Array.reduce()")}} може застосовуватись для пошуку найбільшого елементу в числовому масиві шляхом порівняння кожного значення:

var arr = [1,2,3];
var max = arr.reduce(function(a, b) {
    return Math.max(a, b);
});

Наступна функція використовує {{jsxref("Function.prototype.apply()")}} для отримання найбільшого серед масиву чисел. getMaxOfArray([1, 2, 3]) еквівалентна до Math.max(1, 2, 3), проте ви можете застосовувати getMaxOfArray() для масивів, сформованих у процесі виконання програми. Цей спосіб слід застосовувати лише для масивів з відносно невеликою кількістю елементів.

function getMaxOfArray(numArray) {
  return Math.max.apply(null, numArray);
}

Новий оператор поширення (spread operator) - це більш компактний спосіб записати рішення на базі apply для отримання максимуму із масиву чисел:

var arr = [1, 2, 3];
var max = Math.max(...arr);

Однак, як оператор поширення (...), так і apply призведуть до помилки або повернуть невірний результат, якщо вхідний масив має забагато елементів, бо вони намагаються передати елементи масиву в якості параметрів функції. Дивіться Використання методу apply і вбудованих фукнцій для більш докладної інформації. Рішення на базі reduce не має такої проблеми.

Специфікації

Специфікація
{{SpecName('ESDraft', '#sec-math.max', 'Math.max')}}

Підтримка у браузерах

{{Compat("javascript.builtins.Math.max")}}

Дивіться також