JS数学方法

发布时间:2024年01月22日

Math是js中内置的一个对象,这个对象中包含了许多数学方法

random

  • 语法:Math.random()
  • 返回值:得到0~1的随机数,包含0,不包含1
Math.random() // 0~1的随机数,包含0,不包含1
  • 封装一个获取范围内随机整数函数
function getRandom(n, m) {
    // 假设 m > n
    // Math.random() ==> [0, 1) 随机数
    // Math.random() * (m - n + 1) ==> [0, m - n + 1) 随机数
    // Math.random() * (m - n + 1) + n ==> [n, m + 1) 随机数
    // Math.floor(Math.random() * (m - n + 1) + n) ==> [n, m] 随机整数

    // 考虑到不知道n和m谁更大的问题
    return Math.floor(Math.random() * (Math.abs(m - n) + 1) + Math.min(n, m))
}
  • 封装一个获取随机颜色(rgb)函数
function getColor() {
    return `rgb(${getRandom(0, 255)}, ${getRandom(0, 255)}, ${getRandom(0, 255)})`
}
  • 封装一个获取十六进制的随机颜色字符串函数,比如#0f1a2c
var str = '0123456789abcdef'
// 字符串中的每一个字符都是十六进制的取值

// 写法1
function getColor1() {
    var color = '#'
    for (var i = 0; i < 6; i++) {
        // 获取随即索引
        var index = Math.floor(Math.random() * str.length)
        color += str[index]
    }
    return color
}

// 写法2:先获取0~255随机整数再转换成十六进制
function getColor2() {
    var color = '#'
    for (var i = 0; i < 3; i++) {
        // 获取0~255随机整数
        var n = Math.floor(Math.random() * 256)
        color += n > 15 ? n.toString(16) : '0' + n.toString(16)
    }
    return color
}
  • 获取四位随机不重复的字符验证码
var str = 'qwertyuiopasdfghjklzxcvbnm1234567890'
var code = '' // 验证码

// 使用for循环
for (var i = 0; i < 4; i++) {
    // 获取随机索引(0 ~ str.length-1)
    var index = getRandom(0, str.length - 1)
    // 获取随机字符
    var s = str.charAt(index)
    // 拼接随机字符,如果获取的随机字符s在code中已经存在则i--
    code.includes(s) ? i-- : code += s
}

console.log(code)

round

  • 语法:Math.round(参数)
  • 返回值:对传入的数据四舍五入取整
Math.round(10.1) // 10
Math.round(10.9) // 11

floor

  • 语法:Math.floor(参数)
  • 返回值:对传入的数据向下取整
Math.floor(10.1) // 10
Math.floor(10.9) // 10
Math.floor(-10.9) // -11

ceil

  • 语法:Math.ceil(参数)
  • 返回值:对传入的数据向上取整
Math.ceil(10.1) // 11
Math.ceil(10.9) // 11
Math.ceil(-10.9) // -10

abs

  • 语法:Math.abs(参数)
  • 返回值:对传入的数据取绝对值
Math.abs(-10) // 10
Math.abs(10) // 10

max

  • 语法:Math.max(参数, 参数...)
  • 返回值:对所有传入的数据取最大值
Math.max(1, 2, 3, 4, 5) // 5
Math.max(10, 2, 3, 4, 5) // 10

min

  • 语法:Math.min(参数, 参数...)
  • 返回值:对所有传入的数据取最小值
Math.min(1, 2, 3, 4, 5) // 1
Math.min(10, 2, 3, 4, 5) // 2

sqrt

  • 语法:Math.sqrt(参数)
  • 返回值:对传入的数据开平方
Math.sqrt(4) // 2
Math.sqrt(9) // 3

pow

  • 语法:Math.pow(参数, 次幂)
  • 返回值:对传入的数据取次幂数
Math.pow(4, 2) // 16
Math.pow(9, 3) // 729
Math.pow(27, 1 / 3) // 3

PI

  • 语法:Math.PI
  • 返回值:圆周率
Math.PI // 3.141592653589793
文章来源:https://blog.csdn.net/weixin_56560654/article/details/135740098
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。