JavaScript--Math

一、概述

ECMAScript 提供了 Math 对象作为保存数学公式、信息和计算的地方。Math 对象提供了一些辅助计算的属性和方法。

注意:Math 对象上提供的计算要比直接在 JavaScript 实现的快得多,因为 Math 对象上的计算使用了 JavaScript 引擎中更高效的实现和处理器指令。但使用 Math 计算的问题是精度会因浏览器、操作系统、指令集和硬件而异。

二、属性

Math 对象有一些属性,主要用于保存数学中的一些特殊值。
image.png

三、方法

1、min()和 max()方法

min()和 max()方法用于确定一组数值中的最小值和最大值。这两个方法都接收任意多个参数。

let max = Math.max(3, 54, 32, 16); 
console.log(max); // 54 

let min = Math.min(3, 54, 32, 16); 
console.log(min); // 3

如果要找到数组中的最大或最小值,可以这样:

var arr = [3, 10, 2, 100]; 
var max = Math.max.apply(Math, arr); 
console.log(max); // 100

apply()方法是用来改变一个函数内的this指向,第一个参数就是要this指向的对象,第二个参数是一个数组。

2、舍入方法

接下来是用于把小数值舍入为整数的 4 个方法:Math.ceil()、Math.floor()、Math.round()和 Math.fround()。

Math.ceil()方法

Math.ceil()始终向上舍入为最接近的整数。

console.log(Math.ceil(25.9)); // 26 
console.log(Math.ceil(25.5)); // 26 
console.log(Math.ceil(25.1)); // 26
Math.floor()方法

Math.floor()始终向下舍入为最接近的整数。

console.log(Math.floor(25.9)); // 25 
console.log(Math.floor(25.5)); // 25 
console.log(Math.floor(25.1)); // 25
Math.round()方法

Math.round()执行四舍五入。

console.log(Math.round(25.9)); // 26 
console.log(Math.round(25.5)); // 26 
console.log(Math.round(25.1)); // 25
Math.fround()方法

Math.fround()返回数值最接近的单精度(32 位)浮点值表示。

console.log(Math.fround(0.4)); // 0.4000000059604645 
console.log(Math.fround(0.5)); // 0.5 
console.log(Math.fround(25.9)); // 25.899999618530273

3、random()方法

Math.random()方法返回一个 0~1 范围内的随机数,其中包含 0 但不包含 1。

很多时候,通过函数来算出可选总数和最小可能的值可能更方便,比如:

function selectFrom(lowerValue, upperValue) { 
 let choices = upperValue - lowerValue + 1; 
 return Math.floor(Math.random() * choices + lowerValue); 
} 
let num = selectFrom(2,10); 
console.log(num); // 2~10 范围内的值,其中包含 2 和 10 

这里的函数 selectFrom()接收两个参数:应该返回的最小值和最大值。通过将这两个值相减再加 1 得到可选总数,然后再套用上面的公式。于是,调用 selectFrom(2,10)就可以从 2~10(包含)范围内选择一个值了。使用这个函数,从一个数组中随机选择一个元素就很容易,比如:

let colors = ["red", "green", "blue", "yellow", "black", "purple", "brown"]; 
let color = colors[selectFrom(0, colors.length-1)];

4、其它方法

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的反正弦值 
Matn.atan(x) 返回x的反正切值 
Math.atan2(y, x) 返回y/x的反正切值 
Math.cos(x) 返回x的余弦值 
Math.sin(x) 返回x的正弦值 
Math.tan(x) 返回x的正切值
posted @ 2022-10-28 19:54  蒜泥捣莓  阅读(63)  评论(0编辑  收藏  举报