Math是 JavaScript 的原生对象,提供各种数学功能。该对象不是构造函数,不能生成实例,所有的属性和方法都必须在Math对象上调用。
1. Math静态属性
以下均为只读属性,不可修改。
Math.E // 常数e
Math.LN2 // 2的自然对数
Math.LN10 // 10的自然对数
Math.LOG2E // 以2为底的e的对数
Math.LOG10E // 以10为底的e的对数
Math.PI // 常数Pi
Math.SQRT1_2 // 0.5的平方根
Math.SQRT2 // 2的平方根
2. Math静态方法
2.1 Math.abs()
Math.abs方法返回参数值的绝对值。
Math.abs(1); // 1
Math.abs(-1); // 1
2.2 Math.max()和Math.min()
Math.max方法返回参数之中最大的那个值。
Math.min返回参数之中最小的那个值。
如果参数为空, Math.min返回Infinity,Math.max返回-Infinity。
Math.max(2, -1, 5); // 5
Math.min(2, -1, 5); // -1
Math.min(); // Infinity
Math.max(); // -Infinity
2.3 Math.floor()和Math.ceil()
Math.floor方法返回小于参数值的最大整数。
Math.ceil方法返回大于参数值的最小整数。
Math.floor(3.2); // 3
Math.floor(-3.2); // -4
Math.ceil(3.2); // 4
Math.ceil(-3.2); // -3
2.4 Math.round()
Math.round方法用于四舍五入。
Math.round(0.1); // 0
Math.round(0.5); // 1
Math.round(0.6); // 1
Math.round(-1.1); // -1
Math.round(-1.5); // -1,注意这里
Math.round(-1.6); // -2
2.5 Math.pow()
Math.pow方法返回以第一个参数为底数、第二个参数为幂的指数值。
// 等同于 2 ** 2
Math.pow(2, 2); // 4
2.6 Math.sqrt()
Math.sqrt方法返回参数值的平方根。如果参数是一个负值,则返回NaN。
Math.sqrt(4); // 2
Math.sqrt(-4); // NaN
2.7 Math.log()
Math.log方法返回以e为底的自然对数值。
Math.log(Math.E); // 1
Math.log(10); // 2.302585092994046
2.8 Math.exp()
Math.exp方法返回常数e的参数次方。
Math.exp(1); // 2.718281828459045
2.9 Math.random()
Math.random()返回0到1之间的一个伪随机数,可能等于0,但是一定小于1。
Math.random();
任意范围的随机数生成函数如下:
function getRandomArbitrary(min, max) {
return Math.random() * (max - min) + min;
}
getRandomArbitrary(-40, 50);
返回随机字符的函数如下:
function random_str(length) {
var ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
ALPHABET += 'abcdefghijklmnopqrstuvwxyz';
ALPHABET += '0123456789-_';
var str = ''; //用于存储生成的随机字符串
for (var i=0; i < length; ++i) {
// 用于生成一个随机数充当位置
var rand = Math.floor(Math.random() * ALPHABET.length);
// 利用生成的随机数裁剪原字符串得到该位置的字符
str += ALPHABET.substring(rand, rand + 1);
}
return str;
}
random_str(6);
2.10 三角函数
Math.sin(0); // 0
Math.cos(0); // 1
Math.tan(0); // 0
Math.asin(1); // 1.5707963267948966
Math.acos(1); // 0
Math.atan(1); // 0.7853981633974483