JavaScript Math对象详解与常用方法封装
本文详解JavaScript中Math内置对象的核心属性与方法,包括圆周率、最值、绝对值及取整操作。通过封装自定义对象演示如何复用PI、最大最小值逻辑,并深入讲解random随机数生成原理及整数区间获取公式,附带完整代码示例。
Math内置对象基础用法
Math对象是JavaScript的内置全局对象,并非构造函数,因此无需使用new关键字实例化,可直接调用其属性和方法。例如,Math.PI返回圆周率常量;Math.max()用于比较多个数值并返回最大值,若传入非数值类型(如字符串)则返回NaN,无参数时返回-Infinity。
<script>
// Math数学对象 不是一个构造函数 ,所以我们不需要new 来调用 而是直接使用里面的属性和方法即可
console.log(Math.PI); // 一个属性 圆周率
console.log(Math.max(1, 99, 3)); // 99
console.log(Math.max(-1, -10)); // -1
console.log(Math.max(1, 99, 'pink老师')); // NaN
console.log(Math.max()); // -Infinity
</script>
自定义数学对象封装
可以通过对象字面量方式封装自定义数学工具,例如定义包含PI属性、max和min方法的对象。max方法通过遍历arguments参数数组比较大小,返回最大值;min方法逻辑类似,返回最小值。封装后可通过对象名直接调用PI、max和min方法,实现代码复用。
<script>
// 利用对象封装自己的数学对象 里面有 PI 最大值和最小值
var myMath = {
PI: 3.141592653,
max: function() {
var max = arguments[0];
for (var i = 1; i < arguments.length; i++) {
if (arguments[i] > max) {
max = arguments[i];
}
}
return max;
},
min: function() {
var min = arguments[0];
for (var i = 1; i < arguments.length; i++) {
if (arguments[i] < min) {
min = arguments[i];
}
}
return min;
}
}
console.log(myMath.PI);
console.log(myMath.max(1, 5, 9));
console.log(myMath.min(1, 5, 9));
</script>
绝对值与取整方法
Math.abs()用于计算绝对值,若参数为字符串会隐式转换为数字,无法转换则返回NaN。取整方法包括:Math.floor()向下取整(向负无穷方向),Math.ceil()向上取整(向正无穷方向),Math.round()四舍五入取整,注意负数的小数部分为0.5时的舍入规则。
<script>
// 1.绝对值方法
console.log(Math.abs(1)); // 1
console.log(Math.abs(-1)); // 1
console.log(Math.abs('-1')); // 隐式转换 会把字符串型 -1 转换为数字型
console.log(Math.abs('pink')); // NaN
// 2.三个取整方法
// (1) Math.floor() 地板 向下取整 往最小了取值
console.log(Math.floor(1.1)); // 1
console.log(Math.floor(1.9)); // 1
// (2) Math.ceil() ceil 天花板 向上取整 往最大了取值
console.log(Math.ceil(1.1)); // 2
console.log(Math.ceil(1.9)); // 2
// (3) Math.round() 四舍五入 其他数字都是四舍五入,但是 .5 特殊 它往大了取
console.log(Math.round(1.1)); // 1
console.log(Math.round(1.5)); // 2
console.log(Math.round(1.9)); // 2
console.log(Math.round(-1.1)); // -1
console.log(Math.round(-1.5)); // 这个结果是 -1
</script>
<script>
// 1.Math对象随机数方法 random() 返回一个随机的小数 0 =< x < 1
// 2. 这个方法里面不跟参数
// 3. 代码验证
console.log(Math.random());
// 4. 我们想要得到两个数之间的随机整数 并且 包含这2个整数
// Math.floor(Math.random() * (max - min + 1)) + min;
function getRandom(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
console.log(getRandom(1, 10));
// 5. 随机点名
var arr = ['张三', '张三丰', '张三疯子', '李四', '李思思', 'pink老师'];
// console.log(arr[0]);
console.log(arr[getRandom(0, arr.length - 1)]);
</script>
随机数生成与区间应用
Math.random()生成[0, 1)区间的随机小数。获取[min, max]区间内的随机整数公式为:Math.floor(Math.random() * (max - min + 1)) + min。结合数组索引,可实现随机点名等功能,例如从包含多个姓名的数组中随机选取元素。
JavaScript入门书籍避坑:这些书不适合初学者
2026-11-05 16:31:15
JS使用Math.round实现保留两位小数的原理与代码
2026-11-05 15:35:55
JavaScript 原生 Date 对象怎么实现日期加减
2026-11-05 14:30:00
JavaScript函数定义的三种方式:声明、表达式与箭头函数
2026-11-05 13:50:55
JavaScript中escape、encodeURI和encodeURIComponent对空格的处理差异
2026-11-05 12:47:23
