Math数学对象
Math数学对象不是一个构造器 不许需要new来调用 直接使用里面的属性和方法
console.log(Math.PI); //一个属性 圆周率 console.log(Math.max(1,22,122)); console.log(Math.max(-1,0)); console.log(Math.max(1,2,'hh')); //给定数值中最大的数。如果任一参数不能转换为数值,则返回 NaN。 console.log(Math.max()); //如果没有提供参数,返回 -Infinity。 复制代码
Math 对象并不像 Date 和 String 那样是对象的类,因此没有构造函数 Math(),像 Math.sin() 这样的函数只是函数,不是某个对象的方法。您无需创建它,通过把 Math 作为对象使用就可以调用其所有属性和方法。
Math绝对值
语法:Math.abs(x)
eg:
console.log(Math.abs(-1));
得到-1的绝对值:
网络异常,图片无法展示
|
如果是输入的是字符串的话,内部函数会隐式转换为数字型
console.log(Math.abs('-121'));
得到的依然是121
Math的三种取整方式:
- 向下取整:Math.floor() 函数总是返回小于等于一个给定数字的最大整数。
- 向上取整:Math.ceil() 函数总是四舍五入并返回大于等于给定数字的最小整数。
- 四舍五入取整:Math.round() 函数返回一个数字四舍五入后最接近的整数。
Math对象随机数方法
Math.random() 函数返回一个浮点数,伪随机数在范围从0 到小于1
得到一个两数之间的随机整数,包括两个数在内
function getRandomIntInclusive(min, max) { min = Math.ceil(min); max = Math.floor(max); return Math.floor(Math.random() * (max - min + 1)) + min; //含最大值,含最小值 } console.log(getRandomIntInclusive(1,10)); 复制代码
但是这种方式往往只能够返回数字型的,不能满足其他的需求,比如一个随机点名的功能,不能够返回随机的字符串。
这时候我们可以通过遍历数组的形式来完成,把所有的名字都存在一个数组里面
eg:var arr = ['张三','李四','王五','小红','小明'];
console.log(arr[getRandomIntInclusive(0,arr.length-1)]);
这样就可以完成上述名字中取到一个随机的字符串
猜数字游戏
- 程序随机生成1-10之间的数字,并让用户输出,用到Math.random()方法
- 需要猜到正确为止,所以需要一直循环
- while 循环更简单
- 用if,else if,else来判断
- 可以加一个输入的次数
function getRandomIntInclusive(min, max) { min = Math.ceil(min); max = Math.floor(max); return Math.floor(Math.random() * (max - min + 1)) + min; //含最大值,含最小值 } var random = getRandomIntInclusive(1,10); var i = 5; while(i>0){ var num = prompt("猜一猜,请输入1-10的数字"+'还有'+i+"机会"); i--; if(num > random){ alert("猜大了,小伙子"); } else if(num < random){ alert("猜小了,加油加油!"); } else{ alert("流弊啊,猜对了"); break; } } 复制代码
运行后的结果:
网络异常,图片无法展示
|
这是我猜中的界面:
网络异常,图片无法展示
|