Функція 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

Синтаксис

Math.log2(x)

Аргументи

x
Число.

Результат

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

Опис

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

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

Ця фукнція є еквівалентною комбінації методів Math.log(x) / Math.log(2).  Для log2(e) використовуйте вбудовану сталу Math.LOG2E, яка дорівнює 1 / 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), тому обгорніть його у Math.round(), якщо працюєте із бітовими масками.

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

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

Специфікація Статус документу Примітка
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Math.log2' in that specification.
Standard Первинне визначення.
ECMAScript Latest Draft (ECMA-262)
The definition of 'Math.log2' in that specification.
Draft  

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

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
Basic supportChrome Full support 38Edge Full support YesFirefox Full support 25IE No support NoOpera Full support 25Safari Full support 8WebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 25Opera Android Full support YesSafari iOS Full support 8Samsung Internet Android Full support Yesnodejs Full support 0.12

Legend

Full support  
Full support
No support  
No support

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

Мітки документа й учасники

Зробили внесок у цю сторінку: AdriandeCita
Востаннє оновлена: AdriandeCita,