Math对象
Math数学对象,不是一个构造函数,所以我们不需要new来调用,而是直接使用里面的属性和方法即可,跟数学相关的运算(求绝对值,取整、最大值等)可以使用Math中的成员。
console.log(Math.PI); //一个属性,圆周率
console.log(Math.max(1, 98, 26)); //输出最大值98
console.log(Math.max(1, 98, '岳泽以')); //NaN 如果有任一参数不能被转换为数值,则结果为 NaN。
console.log(Math.max()); //-Infinity 如果没有参数,则结果为 - Infinity。
案例:封装自己的数学对象
利用对象封装自己的数学对象,里面有PI最大值和最小值
var myMath = {
PI: 3.141592653,
max: function() {
var max = arguments[0];
for (var i = 1; i < arguments.length; i++) {
if (arguments[i] > max) {
max = arguments[i];
}
}
return max;
},
min: function() {
var min = arguments[0];
for (var i = 1; i < arguments.length; i++) {
if (arguments[i] < min) {
min = arguments[i];
}
}
return min;
}
}
console.log(myMath.PI);
console.log(myMath.max(1, 5, 8));
console.log(myMath.min(1, 5, 8));
Math绝对值和三个取整方法
Math中的常用成员:
成员 | 属性 |
---|---|
Math.PI | 圆周率 |
Math.floor() | 向下取整 |
Math.ceil() | 向上取整 |
Math.round() | 四舍五入(就近取整)-3.5结果是-3 |
Math.abs() | 绝对值 |
Math.max()/Math.min() | 求最大值和最小值 |
绝对值方法
console.log(Math.abs(1)); //1
console.log(Math.abs(-1)); //1
console.log(Math.abs('-1')); //隐式转换,会把字符串型-1转换为数字型
console.log(Math.abs('zeyi')); //NaN
三个取整方法
1.Math.floor()
向下取整,往最小了取值
console.log(Math.floor(1.1)); //1
console.log(Math.floor(1.9)); //1
2.Math.ceil()
向上取整,往最大了取值
console.log(Math.ceil(1.1)); //2
console.log(Math.ceil(1.9)); //2
3.Math.round(()
四舍五入
console.log(Math.round(1.5)); //2
console.log(Math.round(1.2)); //1
console.log(Math.round(-1.1)); //-1
console.log(Math.round(-1.5)); //-1
注意:其他数字都是四舍五入,但是.5特殊,它往大了取,比如-1.5取-1而不取-2是因为-1>-2。
Math随机数方法
Math对象随机数方法:random()
返回一个随机的小数
返回的随机小数范围:0 =< x < 1
console.log(Math.random());//随机一个小数,刷新变化
我们想要得到俩个数之间的随机整数,并且包含这2个整数
//Math.floor(Math.random() * (max - min + 1)) + min;
function getRandom(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
console.log(getRandom(1, 10));
随机点名:
function getRandom(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
var arr = ['张三', '李四', '王五'];
console.log(arr[getRandom(0, arr.length - 1)]);