The Math.log2() function returns the base 2 logarithm of a number, that is
Math.log2(x)
xIf the value of x is less than 0, the return value is always NaN.
Because log2() is a static method of Math, you always use it as Math.log2(), rather than as a method of a Math object you created (Math is not a constructor).
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
This Polyfill emulates the Math.log2 function. Note that it returns imprecise values on some inputs (like 1 << 29), wrap into Math.round() if working with bit masks.
Math.log2 = Math.log2 || function(x) {
return Math.log(x) / Math.LN2;
};
Created by Mozilla Contributors, license: CC-BY-SA 2.5