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

Функція Math.log2() повертає логарифм за основою 2 від числа.  Інакше кажучи,

x>0,Math.log2(x)=log2(x)=такий унікальнійy,для якого2y=x\forall x > 0, \mathtt{\operatorname{Math.log2}(x)} = \log_2(x) = \text{the unique} \; y \; \text{such that} \; 2^y = x

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

Синтаксис

Math.log2(x)

Аргументи

x
Число.

Результат

Логарифм за основою 2 від даного числа. Якщо значення аргументу від'ємне, функція повертає {{jsxref("NaN")}}.

Опис

Якщо значення аргументу x менше від 0, результат завжди дорівнює {{jsxref("NaN")}}.

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

Ця фукнція є еквівалентною комбінації методів Math.log(x) / Math.log(2).  Для log2(e) використовуйте вбудовану сталу {{jsxref("Math.LOG2E")}}, яка дорівнює 1 / {{jsxref("Math.LN2")}}.  

Приклади

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

Math.log2(3);    // 1.584962500721156
Math.log2(2);    // 1
Math.log2(1);    // 0
Math.log2(0);    // -Infinity
Math.log2(-2);   // NaN
Math.log2(1024); // 10

Поліфіл

Даний поліфіл емулює функцію Math.log2. Зауважте, що він повертає неточні значення для деяких аргументів (наприклад, 1 << 29), тому обгорніть його у {{jsxref("Math.round()")}}, якщо працюєте із бітовими масками.

Math.log2 = Math.log2 || function(x) {
  return Math.log(x) * Math.LOG2E;
};

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

Специфікація Статус документу Примітка
{{SpecName('ES2015', '#sec-math.log2', 'Math.log2')}} {{Spec2('ES2015')}} Первинне визначення.
{{SpecName('ESDraft', '#sec-math.log2', 'Math.log2')}} {{Spec2('ESDraft')}}  

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

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

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