03月09, 2019

JS基础(6)——对象(4)——Math 对象

在 ECMAScript 中,Math 对象是一个比较特殊的对象,它是一个静态对象。什么意思呢?

就是说这个 Math 对象和前面讲的其他类型不一样,不需要实例化,直接拿来用就可以了。

这里其实称作 Math 类可能更加便于理解。

6-4-1 Math 对象常见的属性

Math 对象常见的属性如下表:

属性 说明
Math.E 自然对数的底数,即常量 e 的值
Math.LN10 10 的自然对数
Math.LN2 2 的自然对数
Math.LOG2E 以 2 为底 e 的对数
Math.LOG10E 以 10 为底 e 的对象
Math.PI 数学里面 PI 的值
Math.SQRT1_2 1/2 的平方根(即2的平方根的倒数)
Math.SQRT2 2 的平方根

这里面用得稍微多一点的就是 PI,直接拿来用即可。

console.log(Math.PI); // 3.141592653589793

6-4-2 Math 对象常见的方法

1. min()max()

这两个方法很简单,就是求一组数值的最大值和最小值。

let max = Math.max(3,5,8,1);
let min = Math.min(3,5,8,1);
console.log(max); // 8
console.log(min); // 1

2. 舍入方法ceil()floor()round()

ceil()方法执行向上舍入,floor()方法执行向下舍入,round()方法执行四舍五入。

let num = 3.14;
console.log(Math.ceil(num)); // 4
console.log(Math.floor(num)); // 3
console.log(Math.round(num)); // 3

3. 随机数方法

Math.random()方法返回 0 - 1 之间的随机数,如果想显示固定范围的随机数,可以套用下面的公式。

随机值 = Math.floor(Math.random() * 可能值的总数 + 第一个可能的值)

具体示例如下:

let num = Math.random();
console.log(num); // 0.24003779065523112
// 生成 25 - 50 之间的随机数
// 可能值的计算:50 - 25 + 1
let rand = Math.floor(Math.random() * 26 + 25);
console.log(rand); // 41

练习:封装一个函数,这个函数接收 1 个或者 2 个函数。如果参数只有 1 个,则生成 0 - 参数之间的随机数,如果参数有 2 个,则生成这 2 个参数之间的随机数。

// 接收 1 个或者 2 个参数 
// 如果只有 1 个参数 生成 0 - 参数之间的随机数
// 如果有 2 个参数 则生成这 2 个参数之间的随机数
const randomNum = function (i, j = 0) {
    if (i > j) {
        [i, j] = [j, i];
    }
    return Math.floor(Math.random() * (j - i + 1) + i);
}
console.log(randomNum(1, 100));
console.log(randomNum(100, 1));
console.log(randomNum(10));

4. 其他方法

在 Math 对象里面还有诸如下表中所示的其他方法,这里不再做一一演示。

方法 说明
Math.abs(num) 返回 num 的绝对值
Math.exp(num) 返回 Math.E 的 num 次幂
Math.log(num) 返回 num 的自然对数
Math.pow(num,power) 返回 num 的 power 次幂
Math.sqrt(num) 返回 num 的平方根
Math.acos(x) 返回 x 的反余弦值
Math.asin(x) 返回 x 的反正弦值
Math.atan(x) 返回 x 的反正切值
Math.atan2(x) 返回 y / x 的反正切值
Math.cos(x) 返回 x 的余弦值
Math.sin(x) 返回 x 的正弦值
Math.tan(x) 返回 x 的正切值

本文链接:http://www.yanhongzhi.com/post/js-basis-20.html

-- EOF --

Comments