zoukankan      html  css  js  c++  java
  • javaScript系列 [24]Math

    本文介绍JavaScript中的内置对象Math,以及Math的常用方法。

    Math简单介绍

    ECMAScript为我们提供了一个专门处理数学计算的内置对象——Math对象。Math对象提供了很多数学专业计算中可能会用到的特殊值(譬如 π )常量,以及封装好的工具函数(譬如 求N个数最大值、最小值、随机数、绝对值、平方根以及正玄和反余值等)。

    这里先通过console.dir()方法打印Math对象的所有成员,我们可以通过下面列出的打印信息对Math对象有一个简单的了解。

    console.dir(Math);
    Math
        E: 2.718281828459045            //自然对数的底数,常量e的值
        LN2: 0.6931471805599453         //2的自然对数
        LN10: 2.302585092994046         //10的自然对数
        LOG2E: 1.4426950408889634       //以2为底e的对数
        LOG10E: 0.4342944819032518      //以10为底e的对数
        PI: 3.141592653589793           //π的值
        SQRT1_2: 0.7071067811865476     //1/2的平方根(2的平方根的倒数)
        SQRT2: 1.4142135623730951       //2的平方根
        abs: ƒ abs()                    //求参数的绝对值
        acos: ƒ acos()                  //返回参数的反余弦值
        acosh: ƒ acosh()                
        asin: ƒ asin()                  //返回参数的反正玄值
        asinh: ƒ asinh()          
        atan: ƒ atan()                  //返回参数的反正切值
        atan2: ƒ atan2()                //Math.atan2(y,x) 返回y/x的反正切值
        atanh: ƒ atanh()          
        cbrt: ƒ cbrt()                  
        ceil: ƒ ceil()                  //执行向上舍入(将数值向上舍入为最接近的整数)
        clz32: ƒ clz32()
        cos: ƒ cos()                    //返回参数余弦值
        cosh: ƒ cosh()    
        exp: ƒ exp()                    //返回Math.E的参数次幂
        expm1: ƒ expm1()
        floor: ƒ floor()                //执行向下舍入(将数值向下舍入为最接近的整数)
        fround: ƒ fround()
        hypot: ƒ hypot()
        imul: ƒ imul()
        log: ƒ log()                    //返回参数的自然对数
        log1p: ƒ log1p()
        log2: ƒ log2()
        log10: ƒ log10()
        max: ƒ max()                    //返回参数列表中的最大值
        min: ƒ min()                    //返回参数列表中的最小值
        pow: ƒ pow()                    //Math.pow(n,p) 返回n的p次幂
        random: ƒ random()              //返回0~1之间的随机数
        round: ƒ round()                //执行标准的舍入(数学意义的舍入规则)
        sign: ƒ sign()
        sin: ƒ sin()                    //返回参数的正弦值
        sinh: ƒ sinh()                  
        sqrt: ƒ sqrt()                  //返回参数的平方根
        tan: ƒ tan()                    //返回参数的正切值
        tanh: ƒ tanh()
        trunc: ƒ trunc()
        Symbol(Symbol.toStringTag): "Math"
        __proto__: Object 
    

    Math常用方法

    Math.abs()方法返回参数值的绝对值。

      console.log(Math.abs(16));              //16
      console.log(Math.abs(-6));              //6
    

    Math.max()方法返回参数之中最大的那个值,Math.min()返回参数列表中最小的那个值。如果参数为空, Math.min返回Infinity, Math.max返回-Infinity。

      /*01-求参数列表的最大值和最小值*/
      console.log(Math.max(2, -1, 5, 18));    // 18
      console.log(Math.min(2, -1, 5, 21));    // -1
      
      /*02-测试参数列表为空的情况*/
      console.log(Math.min());                // Infinity
      console.log(Math.max());                // -Infinity
    

    Math.pow(x,y)方法返回以第一个参数为底数、第二个参数为幂的指数值,即求x的y次幂。

    console.log(Math.pow(2,3));   //8     2的3次幂
    console.log(Math.pow(2,-1));  //0.5   2的-1次幂 
    
    /*计算 圆的面积 = πr的平方*/
    var radius = 20;
    var area = Math.PI * Math.pow(radius, 2);
    

    Math.round方法用于执行四舍五入操作。
    Math.ceil()方法用于返回大于参数值的最小整数(天花板值)。
    Math.floor()方法用于返回大于参数值的最大整数(地板值)。

      /*01-Math.round() 执行正常的四舍五入操作*/
      console.log(Math.round(0.1));     // 0
      console.log(Math.round(0.5));     // 1
      console.log(Math.round(0.6));     // 1
      /*负值的处理*/
      console.log(Math.round(-1.1));    // -1
      console.log(Math.round(-1.5));    // -1 注意特殊情况
      console.log(Math.round(-1.7));    // -2
    
      /*02-Math.ceil() 大于参数值的最小整数*/
      console.log(Math.ceil(3.1));      // 4
      console.log(Math.ceil(3.5));      // 4
      console.log(Math.ceil(3.9));      // 4
      console.log(Math.ceil(-3.1));     //-3
      console.log(Math.ceil(-3.5));     //-3
      console.log(Math.ceil(-3.9));     //-3
    
      /*03-Math.floor() 小于参数值的最大整数*/
      console.log(Math.floor(3.1));     // 3
      console.log(Math.floor(3.5));     // 3
      console.log(Math.floor(3.9));     // 3
      console.log(Math.floor(-3.1));    //-4
      console.log(Math.floor(-3.5));    //-4
      console.log(Math.floor(-3.9));    //-4
    

    Math.sqrt()方法返回参数值的平方根,如果参数是一个负值,则返回NaN。

    console.log(Math.sqrt(4));          //2
    console.log(Math.sqrt(-4));         //NaN
    console.log(Math.sqrt(9));          //3
    

    Math.random()方法返回0到1之间的一个伪随机数,取值区间为[ 0 , 1 )

    console.log(Math.random());   //0.6260459147033315
    console.log(Math.random());   //0.5273094529873636
    
    /*封装两个生成随机数的方法*/
    function getRandom(min, max) {
      return Math.random() * (max - min) + min;
    }
    
    function getRandomInt(min, max) {
      return Math.floor(Math.random() * (max - min + 1)) + min;
    }
    
    getRandom(1, 8)         // 6.919178146646834
    getRandomInt(1, 8)      // 5
    /*如果需要对结果取整,那么使用Math.floor或者是parseInt函数处理*/
    

    Math对象除了上述工具函数外,还提供一系列的三角函数方法。

        //Math.sin():返回参数的正弦      (参数为弧度值)
        //Math.cos():返回参数的余弦      (参数为弧度值)
        //Math.tan():返回参数的正切      (参数为弧度值)
        //Math.asin():返回参数的反正弦   (返回值为弧度值)
        //Math.acos():返回参数的反余弦   (返回值为弧度值)
        //Math.atan():返回参数的反正切   (返回值为弧度值)
        
        console.log(Math.sin(0));              // 0
        console.log(Math.cos(0));              // 1
        console.log(Math.tan(0));              // 0
        console.log(Math.sin(Math.PI / 2));    // 1
    
    
  • 相关阅读:
    数据库管理
    CodeSmith的运用正在完善中,待续
    各搜索引擎搜索代码
    浏览器本地存储
    QQ在线代码生成
    6组Alpha冲刺4/6
    结对编程作业
    camera相关
    数电、模电相关
    usb协议学习
  • 原文地址:https://www.cnblogs.com/wendingding/p/15756386.html
Copyright © 2011-2022 走看看