内置对象和内置对象的Math对象

目录

什么是内置对象

 Math

数学函数 所有的API都是 Math.方法();

封装函数和数学函数的区别 

 例子

 随机数函数封装

猜数字游戏


什么是内置对象

javaScript中一切皆对象,对象的划分

JavaScript中的对象分为3种:自定义对象、内置对象、浏览器对象
原生对象:Object,Function ,Array, String, Date, Boolean, Number,RegExp,Error
内置对象:Global 全局( window,documet),Math 内置对象的API都是用内置对象直接调用

宿主对象:DOM BOM
基本数据类型结构相对单一,操作都是在栈区进行的,复杂数据类型都在堆区进行存储
内置对象就是指JS语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而必要的功能(内置对象最大的优点就是帮助我们快速开发)
JavaScript提供了多个内置对象:Math、Date , Array、string等

 Math


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

数学函数 所有的API都是 Math.方法();

  • Math.abs(数值); 去绝对值
  • Math.max(数值1,数值2,...); 求当前数据中最大值
  • Math.min(数值1,数值2,...); 求当前数据中最小值
  • Math.round(数值); 四舍五入
  • Math.ceil(数值); 向上取整
  • Math.floor(数值);向下取整
  • Math.pow(n,m);n的m次幂
  • Math.sqrt(数值); 开平方根
  • Math.random(); 生成[0-1)左闭右开区间的随机小数 
//    1,Math
    //    Math 是一个内置对象,它拥有一些数学常数属性和数学函数方法。Math 不是一个函数对象。
    //    Math 用于 Number 类型。它不支持 BigInt。
    //    与其他全局对象不同的是,Math 不是一个构造器。Math 的所有属性与方法都是静态的。
    //    引用圆周率的写法是 Math.PI,调用正余弦函数的写法是 
    //    Math.sin(x),x 是要传入的参数。Math 的常量是使用 JavaScript 中的全精度浮点数来定义的。
      console.log(Math.PI);
      console.log(Math.max(-1, -3, -2));
   // 返回给定的一组数字中的最大值。如果给定的参数中至少有一个参数无法被转换成数字,则会返回 NaN。如果有任一参数不能被转换为数值,则结果为 NaN。
    var x = 10, y = -20;
      console.log(Math.min(x, y));
      console.log(Math.abs(-1));
      console.log(Math.abs('-1'));
      // Math.floor() 返回小于或等于一个给定数字的最大整数。Note:  可以理解 Math.floor()为向下取整
      console.log(Math.floor(2.5));
      // Math.ceil() 函数返回大于或等于一个给定数字的最小整数。
      console.log(Math.ceil(96.6));
      // Math.round() 取值为四舍五入最接近的值
      console.log(Math.round(1.5));
      console.log(Math.round(-1.5));
      // Math.random() 函数返回一个随机浮点数,  伪随机数在范围从0到小于1,也就是说,从0(包括0)往上,但是不包括1(排除1)[0,1),
      //然后您可以缩放到所需的范围。实现将初始种子选择到随机数生成算法;它不能被用户选择或重置。
      console.log(Math.random());

封装函数和数学函数的区别 

   // 利用对象封装自己的数学对象  里面有 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, 9));
        console.log(myMath.min(1, 5, 9));

 例子

        console.log(Math.abs(8));//8
        console.log(Math.abs(-8));//8
        console.log(Math.abs(1)); // 1
        console.log(Math.abs(-1)); // 1
        console.log(Math.abs('-1')); // 隐式转换 会把字符串型 -1 转换为数字型
        console.log(Math.abs('pink')); // NaN 
        console.log(Math.max(-8, 10, 20, 1000));//1000
        console.log(Math.max(1, 99, '老师')); // NaN
        console.log(Math.max()); // -Infinity
        console.log(Math.min(-8, 10, 20, 1000));//-8
        console.log(Math.round(10.29));//10
        console.log(Math.round(10.49));//10
        console.log(Math.round(10.59));//11
        // (1) Math.floor()   地板 向下取整  往最小了取值
        console.log(Math.floor(1.1)); // 1
        console.log(Math.floor(1.9)); // 1
        // (2) Math.ceil()   ceil 天花板 向上取整  往最大了取值
        console.log(Math.ceil(1.1)); // 2
        console.log(Math.ceil(1.9)); // 2
        // (3) Math.round()   四舍五入  其他数字都是四舍五入,但是 .5 特殊 它往大了取  
        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.ceil(10.1));//11
        console.log(Math.floor(10.9));//10
        console.log(Math.pow(2, 4));//16
        console.log(Math.sqrt(64));//8
        console.log(Math.sqrt(125));
        console.log(Math.random());

 随机数函数封装

  
    //作用:生成某个范围的随机整数
    //para:参数
      //  min:小值
     //   max:大值
   // @return 随机数值
 
   // 1.Math对象随机数方法   random() 返回一个随机的小数  0 =< x < 1
      
        // 2. 这个方法里面不跟参数
        // 3. 代码验证 
        console.log(Math.random());  
   // 4. 我们想要得到两个数之间的随机整数 并且 不包含这2个整数
function getRandom(min,max){
    return Math.round(Math.random()*(max-min)+min);
}

   
        // 4. 我们想要得到两个数之间的随机整数 并且 包含这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));
        // 5. 随机点名  
        var arr = ['张三', '张三丰', '张三疯子', '李四', '李思思', 'pink老师'];
        // console.log(arr[0]);
        console.log(arr[getRandom(0, arr.length - 1)]);

猜数字游戏

 // 猜数字游戏
        // 1.随机生成一个1~50 的整数  我们需要用到 Math.random() 方法。
        // 2.需要一直猜到正确为止,所以需要一直循环。
        // 3.while 循环更简单
        // 4.核心算法:使用 if  else if 多分支语句来判断大于、小于、等于。
     // 要求用户猜 1~50之间的一个数字 但是只有 10次猜的机会
 function getRandom(min,max){
            min = Math.ceil(min);
            max = Math.floor(max);
            return Math.floor(Math.random() * (max - min + 1)) + min;

        }
        var random = getRandom(1,50);
        var sum = 0;
        while(true){
         var num = prompt('请输入1-50之间一个数字:');
         
            if(num > random){
                alert('你猜大了');

            }else if(num < random){
                alert('你猜小了');

            }else{
                alert('你猜对了');
                break;
            }
           alert('你还有'+(10-(++sum))+'次机会');
           if(sum == 10){
           alert('你的次数用完了');
           break;
         }
  
        }

猜你喜欢

转载自blog.csdn.net/weixin_58139900/article/details/121068954
今日推荐