Math是一个内置对象,它具有数学常数和函数的属性和方法。它不是一个函数对象。
描述:Math不是一个构造函数,所以我们不需要new来调用,而是直接使用里面的属性和方法。
console.log(Math.PI); //一个属性 圆周率
//一个方法:Math.max():
console.log(Math.max(1,21,32,43,9)); //43 求最大值
console.log(Math.max(1,2,"a")); //NaN 给定的参数中至少有一个参数无法被转换成数字,则返回NaN。
console.log(Math.max()); //- Infinity 没有参数 则返回- Infinity
案例:利用对象封装自己的数学对象,里面有PI 最大值和最小值
//案例:利用对象封装自己的数学对象,里面有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); //3.141592653
console.log(myMath.max(1,2,3,6,7)); //7
console.log(myMath.min(1,2,3,6,7)); //1
Math对象不是构造函数,它具有数学常数和函数的属性和方法。跟数学相关的运算(求绝对值、取整、最大最小值等)可以使用Math中的成员。
几种常见的:
Math.PI //圆周率
Math.floor() //向下取整
Math.ceil() //向上取整
Math.round() //四舍五入 就近取整 注意-2.5 结果是-2
Math.abs() //绝对值
Math.max() //最大值
Math.min() //最小值
//1.绝对值方法
console.log(Math.abs(2)); //2
console.log(Math.abs(-2)); //2
console.log(Math.abs("-2")); //2 隐式转换 会把字符串型 -2 转换为数字型
console.log(Math.abs('pink')); //NaN
//2.三个取整方法
//(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.1)); //1
console.log(Math.round(1.5)); //2
console.log(Math.round(1.9)); //2
console.log(Math.round(-1.1)); //-1
console.log(Math.round(-1.5)); //-1 --注意
console.log(Math.round(-1.9)); //-2
1.Math对象随机数方法 random()返回一个随机的小数 0 <= x <1
2.这个方法里面不跟参数。
3.代码验证
console.log(Math.random());
4.求两个数之间的随机整数,并且包含这两个整数
公式: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));
5.随机点名
//随机点名
var arr = ["张三","李四","王五","赵四","小明","小红"]
function getRandom(min,max){
return Math.floor(Math.random() * (max - min + 1)) + min;
}
console.log(arr[getRandom(0,5)]); //下标 也可以写(0,arr.length-1)
6.猜数字游戏
程序随机生成一个1~10之间的数字,并让用户输入一个数字。
如果大于该数字,就提示,数字大了,继续猜。
如果小于该数字,就提示,数字小了,继续猜。
如果等于该数字,就提示猜对了,结束程序。
//猜数字游戏
//案例分析
//1、随机生成一个1~10的整数,我们需要用到Math.random()方法。
//2、需要一直猜到正确为止
//3、用while循环合适更简单。
//4、核心算法:使用if else if多分支语句来判断大于、小于、等于。
function getRandom(min,max){
return Math.floor(Math.random() * (max - min +1)) + min;
}
var random = getRandom(1,10);
while(true){ //死循环
var num = prompt('请输入1~10之间的数字');
if(num > random){
alert("你猜大了");
}else if(num < random){
alert("你猜小了");
}else{
alert("猜对了");
break; //退出整个循环
}
}