Snipaste_2021-07-13_23-24-04.png

1. Math对象最大值

Math数学对象 不是一个构造函数 ,所以我们不需要new 来调用 而是直接使用里面的属性和方法即可

  1. console.log(Math.PI); // 一个属性 圆周率
  2. console.log(Math.max(1, 99, 3)); // 99
  3. console.log(Math.max(-1, -10)); // -1
  4. console.log(Math.max(1, 99, '老师')); // NaN
  5. console.log(Math.max()); // -Infinity

2. 封装自己的数学对象

利用对象封装自己的数学对象 里面有 PI 最大值和最小值
  1. var myMath = {
  2. PI: 3.141592653,
  3. max: function() {
  4. var max = arguments[0];
  5. for (var i = 1; i < arguments.length; i++) {
  6. if (arguments[i] > max) {
  7. max = arguments[i];
  8. }
  9. }
  10. return max;
  11. },
  12. min: function() {
  13. var min = arguments[0];
  14. for (var i = 1; i < arguments.length; i++) {
  15. if (arguments[i] < min) {
  16. min = arguments[i];
  17. }
  18. }
  19. return min;
  20. }
  21. }
  22. console.log(myMath.PI);//3.141592653
  23. console.log(myMath.max(1, 5, 9));//9
  24. console.log(myMath.min(1, 5, 9));//1

3. Math绝对值和三个取整方法

  1. // 1.绝对值方法
  2. console.log(Math.abs(1)); // 1
  3. console.log(Math.abs(-1)); // 1
  4. console.log(Math.abs('-1')); // 隐式转换 会把字符串型 -1 转换为数字型
  5. console.log(Math.abs('pink')); // NaN
  6. // 2.三个取整方法
  7. // (1) Math.floor() 地板 向下取整 往最小了取值
  8. console.log(Math.floor(1.1)); // 1
  9. console.log(Math.floor(1.9)); // 1
  10. // (2) Math.ceil() ceil 天花板 向上取整 往最大了取值
  11. console.log(Math.ceil(1.1)); // 2
  12. console.log(Math.ceil(1.9)); // 2
  13. // (3) Math.round() 四舍五入 其他数字都是四舍五入,但是 .5 特殊 它往大了取
  14. console.log(Math.round(1.1)); // 1
  15. console.log(Math.round(1.5)); // 2
  16. console.log(Math.round(1.9)); // 2
  17. console.log(Math.round(-1.1)); // -1
  18. console.log(Math.round(-1.5)); // 这个结果是 -1

4. Math对象随机数方法

Snipaste_2021-07-14_00-31-24.png

  1. // 1.Math对象随机数方法 random() 返回一个随机的小数 0 =< x < 1
  2. // 2. 这个方法里面不跟参数
  3. // 3. 代码验证
  4. console.log(Math.random());
  5. // 4. 我们想要得到两个数之间的随机整数 并且 包含这2个整数
  6. // Math.floor(Math.random() * (max - min + 1)) + min;
  7. function getRandom(min, max) {
  8. return Math.floor(Math.random() * (max - min + 1)) + min;
  9. }
  10. console.log(getRandom(1, 10));
  11. // 5. 随机点名
  12. var arr = ['张三', '张三丰', '张三疯子', '李四', '李思思', '老师'];
  13. // console.log(arr[0]);
  14. console.log(arr[getRandom(0, arr.length - 1)]);

案例:猜数字游戏

Snipaste_2021-07-14_00-55-39.png
Snipaste_2021-07-14_00-56-06.png

  1. // 猜数字游戏
  2. // 1.随机生成一个1~10 的整数 我们需要用到 Math.random() 方法。
  3. // 2.需要一直猜到正确为止,所以需要一直循环。
  4. // 3.while 循环更简单
  5. // 4.核心算法:使用 if else if 多分支语句来判断大于、小于、等于。
  6. function getRandom(min, max) {
  7. return Math.floor(Math.random() * (max - min + 1)) + min;
  8. }
  9. var random = getRandom(1, 10);
  10. while (true) { // 死循环
  11. var num = prompt('你来猜? 输入1~10之间的一个数字');
  12. if (num > random) {
  13. alert('你猜大了');
  14. } else if (num < random) {
  15. alert('你猜小了');
  16. } else {
  17. alert('你好帅哦,猜对了');
  18. break; // 退出整个循环结束程序
  19. }
  20. }
  21. // 要求用户猜 1~50之间的一个数字 但是只有 10次猜的机会