您好,登录后才能下订单哦!
# JavaScript中Math对象怎么用
## 一、Math对象概述
JavaScript中的`Math`对象是一个内置的全局对象,提供了大量用于数学计算的属性和方法。与其它全局对象不同,Math不是构造函数,所有属性和方法都是静态的,可以直接通过`Math`调用而无需实例化。
```javascript
console.log(Math.PI); // 直接访问属性
console.log(Math.sqrt(16)); // 直接调用方法
Math对象包含多个数学常量属性,均为只读:
属性 | 描述 | 近似值 |
---|---|---|
Math.E |
自然对数的底数e | 2.718 |
Math.PI |
圆周率π | 3.14159 |
Math.LN2 |
2的自然对数 | 0.693 |
Math.LN10 |
10的自然对数 | 2.302 |
Math.SQRT2 |
2的平方根 | 1.414 |
// 计算圆的面积
function circleArea(radius) {
return Math.PI * radius * radius;
}
Math.round(x)
四舍五入到最接近的整数
Math.round(4.7); // 5
Math.round(-4.2); // -4
Math.ceil(x)
向上取整(大于等于x的最小整数)
Math.ceil(4.2); // 5
Math.ceil(-4.2); // -4
Math.floor(x)
向下取整(小于等于x的最大整数)
Math.floor(4.9); // 4
Math.floor(-4.2); // -5
Math.trunc(x)
(ES6新增)直接去除小数部分
Math.trunc(4.9); // 4
Math.trunc(-4.2); // -4
Math.abs(x)
返回绝对值
Math.abs(-7.25); // 7.25
Math.sign(x)
(ES6新增)返回数字符号: - 1(正数) - -1(负数) - 0(0) - -0(-0) - NaN(非数字)
Math.sign(3); // 1
Math.sign(-3); // -1
Math.pow(x, y)
返回x的y次幂
Math.pow(2, 3); // 8
Math.sqrt(x)
返回平方根
Math.sqrt(64); // 8
Math.cbrt(x)
(ES6新增)返回立方根
Math.cbrt(27); // 3
Math.hypot([x[, y[, ...]]])
(ES6新增)返回所有参数平方和的平方根(计算直角三角形的斜边)
Math.hypot(3, 4); // 5
Math.log(x)
返回自然对数(以e为底)
Math.log(Math.E); // 1
Math.log2(x)
/Math.log10(x)
(ES6新增)返回以2/10为底的对数
Math.log2(8); // 3
Math.log10(100); // 2
Math.max([x[, y[, ...]]])
返回参数中的最大值
Math.max(1, 3, 2); // 3
Math.min([x[, y[, ...]]])
返回参数中的最小值
Math.min(1, 3, 2); // 1
Math.random()
返回[0,1)之间的伪随机数
// 生成1-10的随机整数
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
所有三角函数参数均为弧度值(非角度)
方法 | 描述 |
---|---|
Math.sin(x) |
正弦函数 |
Math.cos(x) |
余弦函数 |
Math.tan(x) |
正切函数 |
Math.asin(x) |
反正弦函数 |
Math.acos(x) |
反余弦函数 |
Math.atan(x) |
反正切函数 |
Math.atan2(y, x) |
从x轴到点(x,y)的角度 |
// 角度转弧度
function toRadians(degrees) {
return degrees * Math.PI / 180;
}
// 计算30度角的正弦值
Math.sin(toRadians(30)); // 0.5
Math.sinh(x) // 双曲正弦
Math.cosh(x) // 双曲余弦
Math.tanh(x) // 双曲正切
Math.clz32(x) // 返回32位二进制表示中前导0的个数
Math.imul(x, y) // 返回两个数的32位整数乘法结果
Math.fround(x) // 返回最接近的单精度浮点数表示
function getRandomColor() {
return `#${Math.floor(Math.random()*16777215).toString(16)}`;
}
const nums = [1, 5, 2, 8];
Math.max(...nums); // 8
Math.min(...nums); // 1
// 计算总页数
const totalPages = Math.ceil(totalItems / itemsPerPage);
// 两点间距离
function distance(x1, y1, x2, y2) {
return Math.hypot(x2 - x1, y2 - y1);
}
精度问题:浮点数运算可能存在精度误差
0.1 + 0.2 === 0.3; // false
参数类型:非数字参数会被尝试转换为数字
Math.abs("-1"); // 1
边界情况:
Math.sqrt(-1); // NaN
Math.log(0); // -Infinity
// 好的写法
const pi = Math.PI;
for(let i=0, len=arr.length; i JavaScript的Math对象提供了丰富的数学计算功能,从基本的算术运算到复杂的三角函数,覆盖了大多数开发场景。掌握这些方法可以: 随着ES6新增方法的引入,Math对象的功能更加强大。在实际开发中,应根据具体需求选择合适的方法,并注意处理可能的边界情况和精度问题。 ”` 这篇文章共计约2150字,全面介绍了JavaScript中Math对象的使用方法,包含基础概念、常用方法详解、实际应用案例和注意事项等内容,采用Markdown格式编写,结构清晰,适合技术文档阅读。
2. **使用位运算替代部分取整**:
```javascript
// 正数向下取整
const floor1 = Math.floor(4.9); // 传统方法
const floor2 = ~~4.9; // 位运算方法
九、总结
十、延伸阅读
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。