Math.log2()

Функція 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 (ECMA-262)
The definition of 'Math.log2' in that specification.
Living Standard  

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

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
log2Chrome Full support 38Edge Full support 12Firefox Full support 25IE No support NoOpera Full support 25Safari Full support 8WebView Android Full support 38Chrome Android Full support 38Firefox Android Full support 25Opera Android Full support 25Safari iOS Full support 8Samsung Internet Android Full support 3.0nodejs Full support 0.12

Legend

Full support  
Full support
No support  
No support

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