常见的Math函数的方法
算术计算
Math.sqrt()
: 计算平方根Math.cbrt()
: 计算立方根Math.pow(a,b)
: 计算a的b次方Math.max(a,b)
: 计算最大值Math.min(a,b)
: 计算最小值Math.abs()
: 取绝对值
console.log(Math.sqrt(16)); // 4.0
console.log(Math.cbrt(8)); // 2.0
console.log(Math.pow(3, 2)); // 9.0
console.log(Math.max(2.3, 4.5));// 4.5
console.log(Math.min(2.3, 4.5));// 2.3
/**
* abs求绝对值
*/
console.log(Math.abs(-10.4)); // 10.4
console.log(Math.abs(10.1)); // 10.1
进位
Math.ceil()
: 天花板的意思,逢余进一Math.floor()
: 地板的意思,逢余合一Math.rint()
: 四舍五入,返回double值。注意 .5的时候会取偶数Math.round()
: 四舍五入,float时返回int值,double时返回long值
/**
* ceil天花板的意思,就是逢余进一
*/
console.log(Math.ceil(-10.1)); // -10.0
console.log(Math.ceil(10.7)); // 11.0
console.log(Math.ceil(-0.7)); // -0.0
console.log(Math.ceil(0.0)); // 0.0
console.log(Math.ceil(-0.0)); // -0.0
console.log(Math.ceil(-1.7)); // -1.0
console.log("-------------------");
/**
* floor地板的意思,就是逢余舍一
*/
console.log(Math.floor(-10.1)); // -11.0
console.log(Math.floor(10.7)); // 10.0
console.log(Math.floor(-0.7)); // -1.0
console.log(Math.floor(0.0)); // 0.0
console.log(Math.floor(-0.0)); // -0.0
console.log("-------------------");
/**
* rint 四舍五入,返回double值 注意.5的时候会取偶数 异常的尴尬=。=
*/
console.log(Math.rint(10.1)); // 10.0
console.log(Math.rint(10.7)); // 11.0
console.log(Math.rint(11.5)); // 12.0
console.log(Math.rint(10.5)); // 10.0
console.log(Math.rint(10.51)); // 11.0
console.log(Math.rint(-10.5)); // -10.0
console.log(Math.rint(-11.5)); // -12.0
console.log(Math.rint(-10.51)); // -11.0
console.log(Math.rint(-10.6)); // -11.0
console.log(Math.rint(-10.2)); // -10.0
console.log("-------------------");
/**
* round 四舍五入,float时返回int值,double时返回long值
*/
console.log(Math.round(10)); // 10
console.log(Math.round(10.1)); // 10
console.log(Math.round(10.7)); // 11
console.log(Math.round(10.5)); // 11
console.log(Math.round(10.51)); // 11
console.log(Math.round(-10.5)); // -10
console.log(Math.round(-10.51)); // -11
console.log(Math.round(-10.6)); // -11
console.log(Math.round(-10.2)); // -10
随机数
Math.random()
: 取得一个[0,1)范围内的随机数
// 获取一个从0到9的随机整数数字
var r = Math.random();
var num = parseInt(Math.random() * 10);对于整个函数只是单纯的负责取整,而不是四色五入
console.log(num);
简单案例
// 完成:从数字中随机挑选一个成员
var arr = ["张三", "李四", "王五", "赵六", "田七"];
// 获取随机数
var r = Math.random();
// 让该随机数 乘以数组的长度
var index = arr.length * r;如果对其结果取整的话,达不到数字5
// 取整
index = parseInt(index);
// 根据index获取成员
var result = arr[index];
console.log("这一次选择的人是" + result);
document.write(result);
小案例
// 随机一个长度 10 ~ 50位的数组
// 随机填充一些数字 这些数字的范围 77 ~ 99
// 求该数组中的最大值
// 分析:
// 既然要随机生成一个不定长度的数组
// new Array(这里得有一个10 ~ 50的数) 解决方案: 利用Math.random() 获取10 ~ 50 代码: var length = parseInt(Math.random() * 41 + 10); 最终把length填入参数中 或者设置为数组的length属性
// 数组已经生成
// 循环生成77 ~ 99 的随机数
// Math.random() * 23 + 77//对于由于random得不到1,所以在乘的数上加1,可以达到22的数字大小;
// 生成长度
var length = parseInt(Math.random() * 41 + 10);
// // 根据长度定义数组
var arr = new Array(length);
console.log(arr);
// // 循环
for (var i = 0; i < arr.length; i++) {
arr[i] = parseInt(Math.random() * 23) + 77;
// }
console.log(arr);
var max = Math.max(...arr);
// 如果arr是 [1, 2, 3, 4] !!! 超纲语法 Math.max(...arr) !!! 该代码等价于 Math.max(1, 2, 3, 4);
// 如果arr是 [45, 76, 88, 101, 44] 该代码等价于 Math.max(45, 76, 88, 101, 44)
var index = arr.indexOf(max); // 找到该最大值的位置
// 删除
arr.splice(index, 1, "原来的最大值");
console.log(arr);