1. 基本概念
Math.log2()方法计算一个数的以2为底数的对数,该方法的名称中的数字2即表示该方法所求的对数是以2为底数的。它的语法形式如下所示:
Math.log2(x);
因为该方法就是要计算其参数x的以2为底的对数,因此x必须是一个数字,即它属于Number类型。如果x不是数字,那么它会先被自动转换为数字。
在中学时我们学过对数函数的定义域为(0,+∞),值域为(-∞,+∞);log2(x)的函数图像如图1所示。
图1 log2(x)的函数图像
具体来说,Math.log2()方法的结果由以下规则决定;结合log2(x)的函数图像以及JavaScript的5个特殊数字(NaN、+0、-0、正无穷和负无穷),可以很容易地理解这些规则。
1. 如果x是NaN,那么结果是NaN;
2. 如果x小于0,那么结果是NaN;因为此时x在函数的定义域之外;
3. 如果x是零(包括+0和-0),那么结果是负无穷(-Infinity);
4. 如果x是1,那么结果是+0;
5. 如果x是正无穷(+Infinity),那么结果是正无穷;
6. 其余情况下,x是区间(0,+∞)中的一个普通数字,结果就是x的以2为底的对数。
对于规则3,从数学意义上来说其实零也在log2(x)的定义域之外。但JavaScript这样规定也有它的道理,那就是当x趋近于零时,log2(x)趋近于负无穷。如果你传递的x不是数字,那么以上这些规则中所说的x的值指的是它被转换为数字后的值。
2. 示例
本小节展示用不同参数调用Math.log2()方法时的返回值,以下代码的执行结果如图2所示。
图2 示例代码的执行结果
(完)
领取专属 10元无门槛券
私享最新 技术干货