本文主要是介绍常用的math 方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Math.abs(x)
函数返回一个数字的绝对值。(返回绝对值)
function difference(a, b) {return Math.abs(a - b);}console.log(difference(3, 5));// 2console.log(difference(5, 3));// 2console.log(difference(1.23456, 7.89012));// 6.6555599999999995
Math.abs() 将其参数强制转换为数字。无法强制转换的值将变成 NaN,使 Math.abs() 也返回 NaN。Math.abs("-1"); // 1
Math.abs(-2); // 2
Math.abs(null); // 0
Math.abs(""); // 0
Math.abs([]); // 0
Math.abs([2]); // 2
Math.abs([1, 2]); // NaN
Math.abs({}); // NaN
Math.abs("string"); // NaN
Math.abs(); // NaN
Math.floor()
函数总是返回小于等于一个给定数字的最大整数。(向下取整)
console.log(Math.floor(5.95));
// 5
console.log(Math.floor(5.05));
// 5
console.log(Math.floor(5));
// 5
console.log(Math.floor(-5.05));
// -6
Math.ceil()
静态方法总是向上舍入,并返回大于等于给定数字的最小整数。(向上取整)
console.log(Math.ceil(0.95));
// 1
console.log(Math.ceil(4));
// 4
console.log(Math.ceil(7.004));
// 8
console.log(Math.ceil(-7.004));
// -7
Math.random()
静态方法返回一个大于等于 0 且小于 1 的伪随机浮点数,并在该范围内近似均匀分布,然后你可以缩放到所需的范围。其实现将选择随机数生成算法的初始种子;它不能由用户选择或重置。(随机数)
function getRandomInt(max) {return Math.floor(Math.random() * max);}console.log(getRandomInt(3));// 0, 1 or 2console.log(getRandomInt(1));// 0console.log(Math.random());// a number from 0 to <1
得到一个大于等于 0 小于 1 之间的随机数
function getRandom() {return Math.random();
}
得到一个两数之间的随机数
该示例返回一个在指定值之间的随机数。这个值不小于(且有可能等于)min
,并且小于(且不等于)max
。
function getRandomArbitrary(min, max) {return Math.random() * (max - min) + min;
}
得到一个两数之间的随机整数
这个示例返回一个在指定值之间的随机整数。这个值不小于 min
(如果 min
不是整数,则不小于 min
的向上取整数),且小于(但不等于)max
。
function getRandomInt(min, max) {const minCeiled = Math.ceil(min);const maxFloored = Math.floor(max);return Math.floor(Math.random() * (maxFloored - minCeiled) + minCeiled); // 不包含最大值,包含最小值
}
得到一个两数之间的随机整数,包括两个数在内
虽然上面的 getRandomInt()
函数包含最小值,但不含最大值。如果你需要结果同时包含最小值和最大值怎么办?下面的 getRandomIntInclusive()
函数可以实现这一点。
function getRandomIntInclusive(min, max) {const minCeiled = Math.ceil(min);const maxFloored = Math.floor(max);return Math.floor(Math.random() * (maxFloored - minCeiled + 1) + minCeiled); // 包含最小值和最大值
}
Math.round()
函数返回一个数字四舍五入后最接近的整数。
x = Math.round(20.49); //20
x = Math.round(20.5); //21
x = Math.round(-20.5); //-20
x = Math.round(-20.51); //-21
Math.trunc()
方法会将数字的小数部分去掉,只保留整数部分。
Math.trunc(13.37); // 13
Math.trunc(42.84); // 42
Math.trunc(0.123); // 0
Math.trunc(-0.123); // -0
Math.trunc("-1.123"); // -1
Math.trunc(NaN); // NaN
Math.trunc("foo"); // NaN
Math.trunc(); // NaN
Math.sqrt()
函数返回一个数的平方根
function calcHypotenuse(a, b) {return Math.sqrt(a * a + b * b);
}
console.log(calcHypotenuse(3, 4));
// 5
console.log(calcHypotenuse(5, 12));
// 13
console.log(calcHypotenuse(0, 0));
// 0
Math.sqrt(9); // 3
Math.sqrt(2); // 1.414213562373095
Math.sqrt(1); // 1
Math.sqrt(0); // 0
Math.sqrt(-1); // NaN
Math.sqrt(-0); // -0
Math.max()
函数返回作为输入参数的最大数字,如果没有参数,则返回 -Infinity。
console.log(Math.max(1, 3, 2));
// 3
console.log(Math.max(-1, -3, -2));
// -1
const array1 = [1, 3, 2];
console.log(Math.max(...array1));
// 3
获取数组的最大元素
Array.prototype.reduce() 可以用来查找最大值元素,通过比较每个值:
const arr = [1, 2, 3];
const max = arr.reduce((a, b) => Math.max(a, b), -Infinity);
下面的方法使用 Function.prototype.apply() 来获取数组的最大值。getMaxOfArray([1, 2, 3])
相当于 Math.max(1, 2, 3)
,但是你可以使用 getMaxOfArray()
作用于任意长度的数组上。这应该只用于元素相对较少的数组。
function getMaxOfArray(numArray) {return Math.max.apply(null, numArray);
}
展开语法是编写 apply
解决方案的一种更简短的方法,可以最大限度地利用数组:
const arr = [1, 2, 3];
const max = Math.max(...arr);
Math.min()
函数返回作为输入参数的数字中最小的一个,如果没有参数,则返回 Infinity。
console.log(Math.min(2, 3, 1));
// 1
console.log(Math.min(-2, -3, -1));
// -3
const array1 = [2, 3, 1];
console.log(Math.min(...array1));
// 1
使用 Math.min()
下例找出 x
和 y
的最小值,并把它赋值给 z
:
const x = 10;
const y = -20;
const z = Math.min(x, y); // -20
使用 Math.min() 裁剪值
Math.min()
经常用于裁剪一个值,以便使其总是小于或等于某个边界值。例如:
let x = f(foo);
if (x > boundary) {x = boundary;
}
可以写成:const x = Math.min(f(foo), boundary);
Math.log10()
函数返回一个数字以 10 为底的对数
Math.log10(10); // 1
Math.log10(100); // 2
Math.log10("100"); // 2
Math.log10(1); // 0
Math.log10(0); // -Infinity
Math.log10(-2); // NaN
Math.log10("foo"); // NaN
查看更多的方法,请参观
Math - JavaScript | MDN (mozilla.org)https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math
这篇关于常用的math 方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!