内置对象是指在JavaScript运行环境中预先定义的对象,Math对象是JavaScript提供的一个“数学”对象,他提供了一系列做数学运算的方法。
1. 常用方法
- random:生成0-1之间的随机数(包含0不包括1)
- ceil:向上取整
- floor:向下取整
- max:找最大数
- min:找最小数
- pow:幂运算
- abs:绝对值
// 1.获取一组数字中的最大值: Math.max(值, 值, 值);
console.log(Math.max(1, 2, 3, 43, 5)); // 43
// 2.获取一组数字中的最小值: Math.min(值, 值, 值);
console.log(Math.min(1, 2, 3, 43, 5)); // 1
// 3.求绝对值
console.log(Math.abs(-1.23)); // 1.23
// 4.求一个值的幂运算 2的5次方
Math.pow(底数, 指数(幂))
console.log(Math.pow(2, 5)); // 32
// 5.对数字进行向下取整: 得到的结果是一个整数且小于或等于当前值的一个整数
返回一个距离当前数字最近的一个整数
console.log(Math.floor(1)); //1
console.log(Math.floor(1.987)); //1
console.log(Math.floor(1.023)); //1
// 6.对数字进行向上取整: 得到的结果也是一个整数且大于或等于当前值的一个整数
返回一个距离当前数字最近的一个整数
console.log(Math.ceil(1)); //1
console.log(Math.ceil(1.0023)); //2
console.log(Math.ceil(-1.2)); //-1
// 7.生成0-1之间的随机数 [0, 1) 大于等于0且小于1
console.log(Math.random());
2. 生成N-M之间的随机数
Math.floor(Math.random()* (M - N + 1)) + N;
// 1 - 10 的随机整数
let res = Math.floor(Math.random()* (10 - 1 + 1) ) + 1;
console.log(res);
3. 案例:生成随机颜色
// 实现如何随机产生十六进制颜色 和 rgb颜色
// 案例分析:
// 颜色分为十六进制#6位数和rgb(0,255,255)两种
// a) 实现一个随机数 ===> 不确定随机数到底是多少,可以将随机封装到一个函数中,用的使用调用即可
function myRandom(min, max) {
let num = Math.floor(Math.random() * (max - min + 1)) + min;
// 需要返回值,将产生的随机数返回
return num;
}
// b) 产生哪种颜色不确定 ===> 封装到一个函数. 用户如果要产生十六进制告诉程序是十六进制,如果是rgb告诉程序是rgb
function RandomColor(type) {
// 定义一个变量保存十六进制颜色的格式:
let color = "";
// 判断用户是否要生成十六进制的数据
if(type === true) {
// 十六进制
// 定义一个数组,保存十六进制中用到的所有字符
let ary = [0, 1, 2, 3, 4, 5, 6, 7, 8 , 9, 'A', 'B', 'C', 'D', 'E', 'F'];
// 循环从数组中取6个值拼接到十六进制的变量身上
for(let i = 1; i <= 6; i++) {
// 产生一个随机数
let index = myRandom(0, ary.length - 1);
// 从数组中取出一个值,和十六进制拼接
color = "#" + ary[index];
}
} else {
// rgb() 颜色每一个取值: 0 - 255
let r = myRandom(0, 255);
let g = myRandom(0, 255);
let b = myRandom(0, 255);
color = `rgb(${r}, ${g}, ${b})`;
}
// 将产生的颜色返回
return color;
}
// true 代表十六进制
let res = RandomColor(true);
console.log(res);
// false 代表rgb
let res1 = RandomColor(false);
console.log(res1);
// 使用一下随机颜色
// document.write(`<div style='width: 200px; height: 200px; background:${res1}'></div>`);
document.write(`<div style='width: 200px; height: 200px; background:${res}'></div>`);