Math.pow()

Статичний метод Math.pow() повертає значення основи, піднесене до степеня. Тобто:

𝙼𝚊𝚝𝚑.𝚙𝚘𝚠(𝚡,𝚢)=xy\mathtt{\operatorname{Math.pow}(x, y)} = x^y

Спробуйте його в дії

Синтаксис

Math.pow(base, exponent)

Параметри

base

Значення основи.

exponent

Значення степеня.

Повернене значення

Число, що представляє значення base, піднесене до степеня exponent. Повертає NaN у кожному з наступних випадків:

  • exponent – це NaN.
  • base – це NaN, а exponent – не 0.
  • base – це ±1, а exponent – це ±Infinity.
  • base < 0, а exponent не є цілим числом.

Опис

Math.pow() рівносильний операторові **, окрім того, що Math.pow() приймає лише числа.

Math.pow(NaN, 0) (і рівносильне NaN ** 0) – це єдиний випадок, при якому NaN не поширюється на результат математичної операції: повертається 1, попри те, що є операнд NaN. Крім цього, логіка, при якій base дорівнює 1, а exponent не є скінченним числом (є ±Infinity або NaN), відрізняється від вимог стандарту IEEE 754, що задає, що результатом повинна бути 1, а натомість JavaScript повертає NaN, аби зберегти зворотну сумісність зі своєю вихідною логікою.

Оскільки pow() — це статичний метод об'єкта Math, його потрібно завжди використовувати через Math.pow(). Не слід звертатись до нього як до методу власноруч створеного екземпляра Math (Math не є конструктором).

Приклади

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

// Прості випадки
Math.pow(7, 2); // 49
Math.pow(7, 3); // 343
Math.pow(2, 10); // 1024

// Дробові показники степеня
Math.pow(4, 0.5); // 2 (квадратний корінь з 4)
Math.pow(8, 1 / 3); // 2 (кубічний корівнь з 8)
Math.pow(2, 0.5); // 1.4142135623730951 (квадратний корінь з 2)
Math.pow(2, 1 / 3); // 1.2599210498948732 (кубічний корінь з 2)

// Від'ємні показники степеня
Math.pow(7, -2); // 0.02040816326530612 (1/49)
Math.pow(8, -1 / 3); // 0.5

// Від'ємні основи
Math.pow(-7, 2); // 49 (квадрати — завжди додатні)
Math.pow(-7, 3); // -343 (куби можуть бути від'ємними)
Math.pow(-7, 0.5); // NaN (від'ємні числа не мають дійсного квадратного кореня)
// У зв'язку з тим, що "парні" та "непарні" корені знаходяться близько один від одного,
// та через обмеження точності чисел з рухомою комою,
// від'ємні основи з дробовими показниками степенів завжди повертатимуть NaN,
// навіть тоді, коли математично результат операції є дійсним числом
Math.pow(-7, 1 / 3); // NaN

// Нуль і нескінченність
Math.pow(0, 0); // 1 (будьщо ** ±0 – це 1)
Math.pow(Infinity, 0.1); // Infinity (додатний степінь)
Math.pow(Infinity, -1); // 0 (від'ємний степінь)
Math.pow(-Infinity, 1); // -Infinity (додатний непарний цілий степінь)
Math.pow(-Infinity, 1.5); // Infinity (додатний степінь)
Math.pow(-Infinity, -1); // -0 (від'ємний непарний цілий степінь)
Math.pow(-Infinity, -1.5); // 0 (від'ємний степінь)
Math.pow(0, 1); // 0 (додатний степінь)
Math.pow(0, -1); // Infinity (від'ємний степінь)
Math.pow(-0, 1); // -0 (додатний непарний цілий степінь)
Math.pow(-0, 1.5); // 0 (додатний степінь)
Math.pow(-0, -1); // -Infinity (від'ємний непарний цілий степінь)
Math.pow(-0, -1.5); // Infinity (від'ємний степінь)
Math.pow(0.9, Infinity); // 0
Math.pow(1, Infinity); // NaN
Math.pow(1.1, Infinity); // Infinity
Math.pow(0.9, -Infinity); // Infinity
Math.pow(1, -Infinity); // NaN
Math.pow(1.1, -Infinity); // 0

// NaN: лише Math.pow(NaN, 0) не призводить до NaN
Math.pow(NaN, 0); // 1
Math.pow(NaN, 1); // NaN
Math.pow(1, NaN); // NaN

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

Сумісність із браузерами

desktop mobile server
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet Deno Node.js
pow
Chrome Full support 1
Edge Full support 12
Firefox Full support 1
Internet Explorer Full support 3
Opera Full support 3
Safari Full support 1
WebView Android Full support 1
Chrome Android Full support 18
Firefox for Android Full support 4
Opera Android Full support 10.1
Safari on iOS Full support 1
Samsung Internet Full support 1.0
Deno Full support 1.0
Node.js Full support 0.10.0

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