常用数学对象及实例
1.圆周率:Math.PI
document.write(Math.PI);
3.141592653589793
2.四舍五入:Math.round(x)
document.write(Math.round(2.1));
2
document.write(Math.round(2.5));
3
3.向下取整:Math.floor(x)
document.write(Math.floor(2.1));
2
document.write(Math.floor(2.6));
2
4.向上取整:Math.ceil(x)
document.write(Math.ceil(2.1));
3
document.write(Math.ceil(2.6));
3
document.write(Math.ceil(Math.random()*10));
8
// Math.random:随机数
5.查找参数列表中的最大数:Math.max(x,y,z,…,n)
document.write(Math.max(1,2,7,3,5));
7
6.查找参数列表中的最小数:Math.min(x,y,z,…,n)
document.write(Math.min(7,2,1,3,5));
1
7.求幂:Math.pow(x,y)
document.write(Math.pow(8, 2));
64 // 8的2次方
ES6求幂方法:x**y
document.write('ES6求幂 : '+5**3);
ES6求幂 : 125 // 5的3次方
8.平方根:Math.sqrt(x)
document.write(Math.sqrt(64));
8
document.write(Math.sqrt(65));
8.06225774829855
document.write(Math.sqrt(-9));
NaN // x必须是大于0的数
9.绝对值:Math.abs(x)
document.write(Math.abs(-4.7));
4.7
document.write(Math.abs(64-90));
26
10.判断数的符号:Math.sign(x)
- 如果x是 正数(不包括
+0
),那么结果就是+1; - 如果x是 负数(不包括
-0
),那么结果就是-1; - 如果参数x不是数字(即它的类型不是
Number
),那么它会先被转换为Number
类型;
Math.sign(3); // 1 正数返回1
Math.sign(-3); // -1 负数返回-1
Math.sign("-3"); // -1
- 如果
x
是 +0,那么结果是+0
; - 如果
x
是 -0,那么结果是-0
;
Math.sign(0); // 0
Math.sign(-0); // -0
- 如果x是
NaN
,那么结果也是NaN
;
Math.sign(NaN); // NaN
Math.sign("foo"); // NaN 无法转换为Number类型
Math.sign(); // NaN
模拟实现sign函数
function sign(x) {
x = +x ; // 转换成一个数字
if (x === 0 || isNaN(x)){
return x;
}
return x > 0 ? 1 : -1;
}
11.随机数:Math.random()
①默认是0—1之间的随机数
var num=Math.random()
console.log(num);
②实现0—10
之间的随机小数
var num=Math.random()*10
console.log(num);
③用parseInt
实现 0—9 之间的随机整数
var num=parseInt(Math.random()*10)
console.log(num);
④用parseInt
实现 1—10 之间的随机整数
var num=parseInt(Math.random()*10+1)
console.log(num);
⑤用floor
实现 0—9 之间的随机整数
var num=Math.floor(Math.random()*10)
console.log(num);
⑥用ceil
实现 1—10 之间的随机整数
var num=Math.ceil(Math.random()*10)
console.log(num);
- 某一区间随机数公式:
Math.random()*(大-小)+小
// 不包含最大
// Math.random()*(大-小+1)+小 默认不包含大 45-60之间的随机数 不包含60 +1就可以包含了
var num=parseInt(Math.random()*(60-45)+45)
console.log(num);
模拟实现random函数
function getRandom(n, m) {
return Math.floor(Math.random() * (m - n + 1) + n);
}
var rand = getRandom(1, 20);
console.log(rand); //输出1——20的随机整数
- 应用:验证码、随机推荐、弹幕中的随机颜色、游戏的概率……
实现一个4位数的验证码
let arr = [];
let result = []; //存放最终结果
// arr中存放 0-9、A-Z、a-z、'['、']'、'\'、'^'、'_'、'`'符号
for (let i = 48; i <= 57; i++) {
arr[i - 48] = String.fromCharCode(i); // 编码转字符
}
for (let i = 65; i <= 122; i++) {
arr[i - 65 + 10] = String.fromCharCode(i);
}
// 打印十个4位数验证码(看效果)
for (let k = 0; k < 10; k++) {
for (let i = 0; i < 4; i++) {
// 在原数组中随机取一个值 放入结果数组中 生成一个随机数
let num = parseInt(Math.random() * arr.length)
result[i] = arr[num]
}
// 将结果转化成字符串 再删去逗号输出
document.write(k+':'+result.toString().replace(/,/g,'')+'<br>');
}
总结
事实上,JavaScript中的数学对象还有很多,本文只是整理了一些比较常用的函数,欢迎补充~~