JavaScript内置对象 之 Math对象

Math对象

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
3.1、Math概述

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
3.2、随机数方法random()

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;   //退出整个循环
        }
    }

你可能感兴趣的:(js学习笔记,javascript,前端)