前端开发系列009-基础篇之JavaScript内置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

posted on 2022-12-10 00:09  文顶顶  阅读(32)  评论(0编辑  收藏  举报

导航