js函数计算平均值(JavaScript用Math.exp计算e的幂)(1)

1. 基本概念

Math.exp()方法返回e的x次幂(也叫e的x次方,e是底数而x是指数),其中x是传递给Math.exp()的参数,而e是自然常数,它的值约等于2.718281828459045。exp是单词"exponential"的前三个字母构成的缩写形式,而"exponential"的含义就是“指数”。因此Math.exp()方法的名字就暗含了它的参数就是指数,同时它固定了底数为e。

调用Math.exp()方法的语法如下所示:

Math.exp(x);

根据对Math.exp()方法的作用的描述,我们就知道它的参数x应该是Number类型的(即x要是一个数字)。如果你传递了一个非Number类型的参数,那么该参数会先被自动转换为Number类型。

Javascript的Number类型除了包含普通数字外,还包含几个特殊的数字,即NaN、 0、-0、正无穷( Infinity)和负无穷(-Infinity)。当Math.exp()方法的参数和结果为这些特殊数字时我们需要额外注意,具体就是以下几点:

1. 如果x是NaN,那么结果是NaN;

2. 如果x是 0,那么结果是1;

3. 如果x是-0,那么结果是1;

4. 如果x是正无穷( Infinity),那么结果是正无穷;

5. 如果x是负无穷(-Infinity),那么结果是 0;

6. 其余情况下,x是一个普通数字,那么就直接按照e的x次方计算结果。

如果最开始x不是一个数字的话,那么以上这些规则中所说的x的值指的是它被转换为数字后的值。其实这些规则都很简单,它们的本质都是一样的,都是对e的x次方这一计算过程的运用,只是需要对参数x和结果为特殊数字的情形稍加注意而已。

2. 示例

既然Math.exp()方法的参数可以是普通数字、特殊数字以及不是数字,那么我们就根据这三种情况分别给出示例代码,以便清楚地看到Math.exp()方法的结果。

2.1 参数是普通数字

<script> var value1 = Math.exp(1); console.log("Math.exp(1):"); console.log(value1); var value2 = Math.exp(-5); console.log("\nMath.exp(-5):"); console.log(value2); var value3 = Math.exp(10.3); console.log("\nMath.exp(10.3):"); console.log(value3); var value4 = Math.exp(-8.6); console.log("\nMath.exp(-8.6):"); console.log(value4); </script>

上面这段代码的执行结果如图1所示:

js函数计算平均值(JavaScript用Math.exp计算e的幂)(2)

图1 参数为普通数字时的结果

2.2 参数是特殊数字

<script> var value1 = Math.exp(NaN); console.log("Math.exp(NaN):"); console.log(value1); var value2 = Math.exp( 0); console.log("\nMath.exp( 0):"); console.log(value2); var value3 = Math.exp(-0); console.log("\nMath.exp(-0):"); console.log(value3); var value4 = Math.exp( Infinity); console.log("\nMath.exp( Infinity):"); console.log(value4); var value5 = Math.exp(-Infinity); console.log("\nMath.exp(-Infinity):"); console.log(value5); </script>

图2展示了该示例的执行结果:

js函数计算平均值(JavaScript用Math.exp计算e的幂)(3)

图2 参数为特殊数字时的结果

2.3 参数不是数字

<script> /* 字符串"1.000"转换成数字为1.000 */ var value1 = Math.exp("1.000"); console.log('Math.exp("1.000"):'); console.log(value1); /* 布尔值false转换成数字为 0 */ var value2 = Math.exp(false); console.log("\nMath.exp(false):"); console.log(value2); /* window对象转换成数字为NaN */ var value3 = Math.exp(window); console.log("\nMath.exp(window):"); console.log(value3); /* null转换成数字为 0 */ var value4 = Math.exp(null); console.log("\nMath.exp(null):"); console.log(value4); </script>

该示例代码的执行结果如图3所示,需要注意的是当参数不是数字的时候,Math.exp()方法会先将参数转换为数字再计算结果。

js函数计算平均值(JavaScript用Math.exp计算e的幂)(4)

图3 参数需要转换时的结果

(完)

,