js中Math常用的函数

  • Post author:
  • Post category:其他




Math对象

JS中有许多的内置对象。其中,Math对象封装了许多常用的数学函数。

  • Math.random

    该方法用于生成一个随机数0~1 包含0 不包含1

        // 获取一个从0到9的随机整数数字
        var r = Math.random();
        var num = parseInt(Math.random() * 10);对于整个函数只是单纯的负责取整,而不是四色五入
        console.log(num);
    

对于求取5-9之间的数字

// parseInt(Math.random() * 5 + 5)  =>  从5到9的随机数字

// 获取一个从0 ~ 4的随机数
        // var num = Math.random() * 5;
        // 让num + 5 变为从 5 ~ 9的随机数
        // num = num + 5;
        // 取整
        // num = parseInt(num);
        // console.log(num);

简单案例

		// 完成:从数字中随机挑选一个成员
        // var arr = ["张三", "李四", "王五", "赵六", "田七"];
        // 获取随机数
        // var r = Math.random();
        // 让该随机数 乘以数组的长度
        // var index = arr.length * r;如果对其结果取整的话,达不到数字5
        // 取整
        // index = parseInt(index);
        // 根据index获取成员
        // var result = arr[index];
        // console.log("这一次选择的人是" + result);
        // document.write(result);
  • Math.abs

    该方法用于获取一个数的绝对值

        // 定义一个负数
        var num = -10;
        // 获取它的绝对值
        var abs = Math.abs(num);
        // 输出
        console.log(abs); // 10
    

取正5和负5之间的随机数

		// var r = Math.random();
        // var num = parseIn1t(r * 11 - 5);
        // console.log(num);
        // r * 11; 0 ~ 10 
        // r * 11 - 5; -5 ~ 5
        // parseInt(r * 11 - 5);  -5 ~ 5
        // var abs = Math.abs(num);
        // console.log(abs);
  • Math.ceil

    向上取整

        var num = 1.1;
        var result = Math.ceil(num);
        console.log(result); // 2
    
  • Math.floor

    向下取整

        var num = 1.1; 
        var result = Math.floor(num);
        console.log(result); // 1
    
  • Math.round

    四舍五入

        var num = 1.4;
        var num1 = 1.5;
        console.log(Math.round(num)); // 1
        console.log(Math.round(num1)); // 2
    
  • Math.pow

    用于求一个数的几次方 第一个参数是底数 第二个参数是指数

        var num = Math.pow(2, 8);
        console.log(num); // 256
    
  • Math.max

    求所有参数中的最大值

        var max = Math.max(1, 2, 56, 78, 99, 0, 46, 23);
        console.log(max); // 99
    

小案例

		// 随机一个长度 10 ~ 50位的数组 
        // 随机填充一些数字 这些数字的范围 77 ~ 99 
        // 求该数组中的最大值
        // 分析:
        // 既然要随机生成一个不定长度的数组 
        // new Array(这里得有一个10 ~ 50的数) 解决方案: 利用Math.random() 获取10 ~ 50  代码: var length = parseInt(Math.random() * 41 + 10); 最终把length填入参数中 或者设置为数组的length属性
        // 数组已经生成
        // 循环生成77 ~ 99 的随机数
        // Math.random() * 23 + 77//对于由于random得不到1,所以在乘的数上加1,可以达到22的数字大小;

        // 生成长度
        // var length = parseInt(Math.random() * 41 + 10);
        // // 根据长度定义数组
        // var arr = new Array(length);
        // // console.log(arr);
        // // 循环
        // for (var i = 0; i < arr.length; i++) {
        //     arr[i] = parseInt(Math.random() * 23) + 77;
        // }
        // console.log(arr);
        // var max = Math.max(...arr); 
        // 如果arr是 [1, 2, 3, 4] !!! 超纲语法 Math.max(...arr) !!!  该代码等价于 Math.max(1, 2, 3, 4);
        // 如果arr是 [45, 76, 88, 101, 44] 该代码等价于 Math.max(45, 76, 88, 101, 44)
        // var index = arr.indexOf(max); // 找到该最大值的位置
        // 删除
        // arr.splice(index, 1, "原来的最大值");
        // console.log(arr);
  • Math.min

    求min参数中的最小值

        var min = Math.min(1, 2, 56, 78, 99, 0, 46, 23);
        console.log(min); // 1
    

小案例

		// 随机一个长度 10 ~ 50位的数组 
        // 随机填充一些数字 这些数字的范围 77 ~ 99 
        // 求该数组中的最大值
        
        // 定义长度
        // var length = parseInt(Math.random() * 41 + 10);
        // 根据长度定义数组
        // var arr = new Array(length);
        // console.log(arr);
        // 循环
        // for (var i = 0; i < arr.length; i++) {
        //     arr[i] = parseInt(Math.random() * 23) + 77;
        // }

        // var result = Math.min(...arr); // 这里因为是超纲内容 所以不便过多介绍
        // var result = Math.min.apply("", arr); 
        // apply方法介绍 它是函数的方法 
        // 1 改变函数中的this指向
        // 2 以数组的形式传递参数
        // 分析: 因为写法必须是 (第一种)函数.apply();  而不能是(第二种)函数().apply()
        // 因为 第一种的写法 函数本身没有自己执行 而是被apply执行
        // 第二种的写法是 函数先执行 执行完以后 让函数的结果去调用apply 
        // 既然没有圆括号,那么如果原函数需要参数 这些参数就必须组装成一个数组 放入apply方法的第二个参数中
        /* 
            Math.min(1, 2, 3, 4); 
            Math.min.apply("", [1, 2, 3, 4]);
         */
        // console.log(result);

额外说明: …语法是ES6中的语法 可以将数组的每一个成员拆解成参数传递给函数

额外说明: apply方法是所有函数都有的方法 作用是改变函数中的this指向并以数组的形式传递参数



常见的Math函数的方法

在这里插入图片描述



版权声明:本文为stenphencurry原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。