数学方法
+ 所有的数学方法都是 Math.xxx()
1. random()
+ 语法: Math.random()
+ 返回值: [0, 1) 的随机浮点数, 有可能为 0 但是绝不可能为 1
2. round()
+ 语法: Math.round(数字)
+ 返回值: 四舍五入取整后的结果
3. ceil()
+ 语法: Math.ceil(数字)
+ 返回值: 向上取整后的结果
4. floor()
+ 语法: Math.floor(数字)
+ 返回值: 向下取整后的结果
5. abs()
+ 语法: Math.abs(数字)
+ 返回值: 该数字的绝对值
6. sqrt()
+ 语法: Math.sqrt(数字)
+ 返回值: 该数字的算术平方根
7. pow()
+ 语法: Math.pow(底数, 指数)
+ 语法: Math.pow(谁, 的多少次方)
+ 返回值: 取幂的结果
8. max()
+ 语法: Math.max(数字1, 数字2, 数字3, ...)
+ 返回值: 若干个数字的最大值
9. min()
+ 语法: Math.min(数字1, 数字2, 数字3, ...)
+ 返回值: 若干个数字的最小值
10. PI
+ 语法: Math.PI
+ 得到: 一个近似 π 的值
+ 注意: 使用不需要小括号, 全部都是大写
*/
// 1. random()
// console.log(Math.random())
// 2. round()
// console.log(Math.round(10.4))
// console.log(Math.round(10.5))
// console.log(Math.round(10.499))
// console.log(Math.round(-10.4)) // -10 小数部分是 0.6 入, -10
// console.log(Math.round(-10.5)) // -10 小数部分是 0.5 入, -10
// console.log(Math.round(-10.6)) // -11 小数部分是 0.4 舍, -11
// -10.2 应该走的是 入 向数轴正方向最近的整数靠拢 -10
// 整数部分是: -11
// 小数部分是: 0.8
// 3.
// console.log(Math.ceil(10.5))
// console.log(Math.ceil(10.1))
// console.log(Math.ceil(10.0000000001))
// 4.
// console.log(Math.floor(10.9999999))
// 5.
// console.log(Math.abs(-10.567))
// 6.
// console.log(Math.sqrt(4))
// 7.
// console.log(Math.pow(8, 1/3))
// 8.
// console.log(Math.max(10, 20, 33, 23, 14, -5, 6, 31))
// var arr = [10, 20, 33, 23, 14, -5, 6, 31]
// console.log(Math.max(...arr))
// 9.
// console.log(Math.min(10, 20, 33, 23, 14, -5, 6, 31))
// 10.
console.log(Math.PI)
保留小数位
保留小数位
+ 语法: 数字.toFixed(保留几位小数)
+ 返回值: 保留好的小数, 但是是一个字符串类型
+ 小数位不够的时候, 使用 0 补齐
var n = 10
var res = n.toFixed(2)
console.log(res)
获取范围内的随机整数
拿到 0 ~ 10 之间的随机整数[0, 10]
1. 拿到一个随机小数 Math.random()
2. 用拿到的数字 * 10 0 ~ 9.999
3. 进行四舍五入的取整
拿到的数字和取整之间的关系
0 ~ 0.499 0
0.5 ~ 1.499 1
...
8.5 ~ 9.499 9
9.5 ~ 9.999 10
拿到 0 ~ 10 之间的随机整数[0, 10] 改版
1. 拿到一个随机小数 Math.random()
2. 用拿到的数字 * (10 + 1) 0 ~ 9.999
3. 进行四舍五入的取整
=> 向上取整 要求取整以前 -0.999 ~ 9.999
=> 向下取整 要求取整以前 0 ~ 10.999
=> 因为 random 的随机数字是 0 ~ 1 之间
// 方案1: 不是很好
// var r1 = Math.random()
// var r2 = r1 * 10
// var r3 = Math.round(r2)
// console.log(r3)
// 方案2:
// var r1 = Math.random()
// var r2 = r1 * (10 + 1)
// var r3 = Math.floor(r2)
需求: 求 0 ~ 20 之间的随机整数
1. random 出现一个随机数字
2. 随机小数 * (20 + 1)
3. 向下取整
需求: 求 0 ~ y 之间的随机整数
1. random 出现一个随机数字
2. 随机小数 * (y + 1)
3. 向下取整
需求: 求 10 ~ 20 之间的随机整数
1. 求出 0 ~ 10 之间的随机整数
2. 随机整数 + 10
需求: 求 20 ~ 30 之间的随机整数
1. 求出 0 ~ 10 之间的随机整数
2. 随机整数 + 20
需求: 求 10 ~ 30 之间的随机整数
1. 求出 0 ~ 20 之间的随机整数
2. 随机整数 + 10
需求: 求 min ~ max 之间的随机整数
1. 求出 0 ~ (max - min) 之间的随机整数
2. 随机整数 + min
// 32 ~ 41
// var obj = {}
// for (var i = 0; i < 1000000; i++) {
// var res = Math.floor(Math.random() * (9 + 1)) + 32
// obj[res] ? obj[res]++ : obj[res] = 1
// }
// console.log(obj)
// 封装起来
// 我通常用到的是 0 ~ 255 之间的随机整数
// 在其次 0 ~ x 用的多
// 最少的就是 x ~ y
// 定义函数方式1: function randomNum(a, b) {}
// 将来使用的时候: randomNum(0, 255) randomNum(0, 10) randomNum(10, 20)
// 定义函数方式1: function randomNum(a = 255, b = 0) {}
// 将来使用的时候 randomNum() randomNum(10) randomNum(10, 20)
// function randomNum(a = 255, b = 0) {
// // 1. 确定大小数
// var max = Math.max(a, b)
// var min = Math.min(a, b)
// // 2. 使用公式计算一个随机整数
// var res = Math.floor(Math.random() * (max - min + 1)) + min
// // 3. 返回求出的随机数字
// return res
// }
// var res = randomNum(30, 20)
// console.log(res)
</script>
<script src="./utils.js"></script>
<script>
/*
封装函数, 生成一个随机颜色字符串
+ #FFFFFF
+ rgb(255, 255, 255)
*/
// function randomColor() {
// var res = `rgb(${ randomNum() }, ${ randomNum() }, ${ randomNum() })`
// return res
// }
// console.log(randomColor())
// document.body.style.backgroundColor = randomColor()
randomColor()
function randomColor() {
// 十六进制
var str = '#'
// 方案1: 生成六个 0 ~ 15 的随机整数, 转换成十六进制, 拼接在一起
// for (var i = 0; i < 6; i++) {
// // 生成随机数
// var r = randomNum(15)
// // 把 r 这个数字转换成十六进制
// // 语法, 数字.toString(进制数)
// var r2 = r.toString(16)
// // 一个一个的拼接到 str 身上
// str += r2
// }
// 方案2: 生成三组 0 ~ 255 的数字, 转换成 十六进制, 拼接在一起
for (var i = 0; i < 3; i++) {
var r = randomNum()
var r2 = r.toString(16)
if (r <= 15) r2 = '0' + r2
str += r2
}
// console.log(str)
// 返回拼接结果
return str
}
// document.body.style.backgroundColor = randomColor()
// #FFFFFF 白
// #FF0000 红
// #00FF00 绿
// #0000FF 蓝
// #000000 黑
// document.body.style.backgroundColor = '#333300'