在 JS 中 Math 对象给我们提供了操作数据的一些方法(数学的方法)
-
-
random
-
- 语法: Math.random()
-
- 作用: 得到一个随机数, 每次生成的数字都不一样, 但一定是0~1之间的, 包含0, 不包含1, 也就是说最大值可能是 0.99999....
-
-
-
round
-
- 语法: Math.round(数字)
-
- 作用: 将这个数字(小数), 按照四舍五入的形式变成整数
-
-
-
ceil
-
- 语法: Math.ceil(数字)
-
- 作用: 将这个数字(小数) 向上取整
-
-
-
floor
-
- 语法: Math.floor(数字)
-
- 作用: 将这个数字(小数) 向下取整
-
-
-
abs
-
- 语法: Math.abs(数字)
-
- 作用: 返回这个数字的绝对值
-
-
-
sqrt
-
- 语法: Math.sqrt(数字)
-
- 作用: 求 平方根
-
-
-
pow
-
- 语法: Math.pow(基数, 幂)
-
- 作用: 返回基数的几次幂
-
-
-
max
-
- 语法: Math.max(数字1, 数字2, 数字3...)
-
- 作用: 返回传入的数字中 最大的哪一个
-
-
-
min
-
- 语法: Math.min(数字1, 数字2, 数字3...)
-
- 作用: 返回传入的数字中 最小的哪一个
-
-
-
PI
-
- 语法: Math.PI
-
-
作用: 返回 π 代码
-
-
// 1: random 随机生成0-1之间的数字
var num = Math.random()
console.log(num)
// 2:round 四舍五入
var num1 = Math.round(3.4999) //3
var num2 = Math.round(3.5) //4
console.log(num1)
console.log(num2)
// 3:ceil 向上取整
var num1 = Math.ceil(1.0001)
var num2 = Math.ceil(1.99999)
console.log(num1)
console.log(num2)
// 4: floor 向下取整
var num1 = Math.floor(1.0001)
var num2 = Math.floor(1.99999)
console.log(num1)
console.log(num2)
// 5:abs 绝对值
var num1 = Math.abs(1.234)
var num2 = Math.abs(-1.234)
console.log(num1)
console.log(num2)
// 6:sqrt 求平方根
var num = Math.sqrt(9)
console.log(num)
// 7:pow 幂
var num = Math.pow(2,3)
console.log(num)
// 8:max 最大值
var num = Math.max(100, 5, 7, 99, 102, 96, 999)
console.log(num)
// 9:min 最小值
var num = Math.min(100, 5, 7, 99, 102, 96, 1)
console.log(num)
// 10:PI
console.log(Math.PI)
练习:2. 封装一个函数, 函数返回一个 0~10 之间的 随机整数 0 1 2 3 4 5 6 7 8 9 10
function fn () {
var num1 = Math.random() //得到了一个随机数,但是是0-1之间的小数
var num2 = num1 * (10 + 1) // 得到了一个随机数, 区间为 0~10之间的
var num3 = Math.floor(num2) // 通过四舍五入, 将这个随机数改变为 随机整数
rutern num3
}
// 验证一下概率问题
var obj = {}
for(var i = 0;i < 100000;i++){
var sum = fn() //循环开始,先拿到随机数的值
if(obj[sum] == undefined){
obj[sum] = 1 // 代表这个随机数第一次在数组内出现
} else{
// 如果执行这个分支,证明数组内已经有了这个值,但是第几次出现我们不知道,那就让他加1
obj[sum]++
}
}
// 当前 四舍五入的形式有问题, 我们现在要么改为向上取整, 要么改为向下取整
// 如果说 使用向上取整, 数字应该计算为: -0.999~9.999 向上取整后为 0~10
// 如果说 使用向下取整, 数字应该计算为: 0~10.999 向下取整后为 0~10
// 通过分析认为 向下取整比较好计算, 所以我们的 取整方式更改为 向下取整
// 计算公式 Math.floor(随机数 * (10 + 1))