上一节我们详细介绍了JS中的Array数组对象,本节我们将要学习JS中的Math对象。JS的Math对象是一个内置对象,它包含了一些有用的数学函数,可以用于执行各种数学运算。这些函数可以处理各种数学运算,包括加法、减法、乘法、除法、幂运算、对数、三角函数等。

例如,Math.sqrt(x)可以返回x的平方根,Math.sin(x)可以返回x的正弦值,等等。

/* 返回平方根 */
console.log(Math.sqrt(4));//2
/* 返回余弦值(数字->弧度才能作为参数) */
console.log(Math.cos(60 * Math.PI / 180)); // 0.5000000000000001

此外,Math对象还有一些属性,如Math.E(表示自然常数e)和Math.LN10(表示以10为底的自然对数)。

/* e */
console.log(Math.E);//2.718281828459045
/* Math.LN10 */
console.log(Math.LN10);//2.302585092994046

值得注意的是,Math对象中的函数和属性都是静态的,也就是说它们在全局作用域中,可以直接通过名称调用,而无需创建Math对象实例。下面我们通过表格展示一下Math的常用方法:

函数(带参数)功能
数学运算
Math.abs(x)返回x的绝对值
Math.sqrt(x)返回x的平方根
Math.pow(x, y)返回x的y次幂
Math.exp(x)返回e的x次幂
Math.log(x)返回x的自然对数
Math.log10(x)返回x的以10为底的对数
Math.log2(x)返回x的以2为底的对数
舍入方法
Math.round(x)返回x四舍五入后的整数
Math.ceil(x)返回x向上取整后的整数
Math.floor(x)返回x向下取整后的整数
Math.trunc(x)返回x的整数部分
最大值最小值
Math.max(x, y, ..., n)返回参数中的最大值
Math.min(x, y, ..., n)返回参数中的最小值
三角函数
Math.sin(x)返回x的正弦值(x为弧度)
Math.cos(x)返回x的余弦值(x为弧度)
Math.tan(x)返回x的正切值(x为弧度)
Math.asin(x)返回x的反正弦值
Math.acos(x)返回x的反余弦值
Math.atan(x)返回x的反正切值
Math.atan2(y, x)返回y/x的反正切值
随机数
Math.random()返回0到1之间的随机数
其他方法
Math.sign(x)返回x的符号(正负号)
Math.hypot(x, y, ..., n)返回所有参数平方和的平方根

这里我们简单演示Math的常用方法:

/* Math.sqrt(x) - 返回x的平方根 */
console.log(Math.sqrt(16)); // 4
/* Math.pow(x, y) - 返回x的y次幂 */
console.log(Math.pow(2, 3)); // 8
/* Math.exp(x) - 返回e的x次幂 */
console.log(Math.exp(1)); // 2.718281828459045
/* Math.round(x) - 四舍五入 */
console.log(Math.round(4.7)); // 5
/* Math.ceil(x) - 向上取整 */
console.log(Math.ceil(4.1)); // 5
/* Math.floor(x) - 向下取整 */
console.log(Math.floor(4.9)); // 4

Math对象内有一些常用的静态内置属性,比如我们需要圆周率的时候就不用手写了,直接调用Math.PI来获取。

Math.PI圆周率π ≈ 3.14159
Math.E自然常数e ≈ 2.71828
Math.LN22的自然对数 ≈ 0.693
Math.LN1010的自然对数 ≈ 2.302
Math.SQRT22的平方根 ≈ 1.414
Math.SQRT1_21/2的平方根 ≈ 0.707

总结:学习并熟练使用这些方法,我们就可以在JS中进行各种复杂的数学运算,而无需手动进行计算,从而大大提高开发效率。

点赞(152)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)