Day17内置对象--Math

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>内置对象--math</title>
</head>
<body>
<script>
// math拥有一些数学常数属性和数学函数方法
// 属性
console.log(Math.PI)//3.141592653589793
// 方法
// ceil向上取整 即取大于这个数本身的最小整数
console.log(Math.ceil(1.1))
console.log(Math.ceil(1.2))
console.log(Math.ceil(1.3))
console.log(Math.ceil(1.5))//都输出2
// floor向下取整 与ceil相反
console.log(Math.floor(1.2))
console.log(Math.floor(1.3))
console.log(Math.floor(1.4))
console.log(Math.floor(1.5))//都输出1
// 四舍五入 round
console.log(Math.round(1.2))
console.log(Math.round(1.4))//1
console.log(Math.round(1.5))//2
// 如果参数的小数部分大于 0.5,则舍入到相邻的绝对值更大的整数。如果参数的小数部分小于 0.5,则舍入到相邻的绝对值更小的整数。如果参数的小数部分恰好等于 0.5,则舍入到相邻的在正无穷(+∞)方向上的整数。
console.log(`===================================`)
x = Math.round(20.49); //20
x = Math.round(20.5); //21
x = Math.round(-20.5); //-20
x = Math.round(-20.51); //-21
// Math只能对数字生效,无法对字符串生效 可以使用parseInt
parent(1.2)//1
parent('12px')//12
// 都取整数
</script>
</body>
</html>
运用到随机数函数上:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>随机函数</title>
</head>
<body>
<script>
// random()不输入范围时, 默认左闭右开,抽0~1,中的一个随机小数
// console.log(Math.random())
// 0~10,之间的整数
console.log(Math.floor(Math.random() * 11))
let arr = ['red', 'green', 'blue']
let random = Math.floor(Math.random() * arr.length)
console.log(arr[random])
// 取N到M的随机整数
function getRandom(N, M) {
return Math.floor(Math.random() * (M - N + 1)) + N
}
console.log(getRandom(4, 6))
</script>
</body>
</html>
下面用一个点名案例来熟练随机函数的应用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>点名案例</title>
</head>
<body>
<script>
let arr = ['马超', '赵云', '黄忠', '张飞', '刘备', '曹操', '关羽']
// 1.先得到一个随机数组作为点名的索引 在这里的数组是0~6
let random = Math.floor(Math.random() * arr.length)
// 2.页面输出元素
document.write(arr[random])
//优化,输出后不在原数组内显示
arr.splice(random, 1)
console.log(arr)
</script>
</body>
</html>

浙公网安备 33010602011771号