JS-数学方法

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

1. 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)

2. round

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

3. floor

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

4. ceil

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

5. abs

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

6. max

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

7. min

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

8. sqrt

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

9. pow

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

10. PI

  • 语法:Math.PI
  • 返回值:圆周率
Math.PI // 3.141592653589793
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Turbosaa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值