Javascript之Math对象详解


Posted in Javascript onJune 07, 2016

Math对象不同于上述的对象,它可以说是一个公共数学类,里面有很多数学方法,用于各种数学运算
但是Math对象不需要构造,对于其中的方法直接使用即可

1、常量(即属性)

E       返回算术常量 e,即自然对数的底数(约等于2.718)

E 返回算术常量 e,即自然对数的底数(约等于2.718)
LN2 返回 2 的自然对数(约等于0.693)
LN10 返回 10 的自然对数(约等于2.302)
LOG2E 返回以 2 为底的 e 的对数(约等于 1.414)
LOG10E 返回以 10 为底的 e 的对数(约等于0.434)
PI 返回圆周率(约等于3.14159)
SQRT1_2 返回返回 2 的平方根的倒数(约等于 0.707)
SQRT2 返回 2 的平方根(约等于 1.414)

下面是它们的值:

document.write("Math.E = "+Math.E+"<br>");

document.write("Math.LN2 = "+Math.LN2+"<br>");

document.write("Math.LN10 = "+Math.LN10+"<br>");

document.write("Math.LOG2E = "+Math.LOG2E+"<br>");

document.write("Math.LOG10E = "+Math.LOG10E+"<br>");

document.write("Math.PI = "+Math.PI+"<br>");

document.write("Math.SQRT1_2 = "+Math.SQRT1_2+"<br>");

document.write("Math.SQRT2 = "+Math.SQRT2+"<br>");

输出结果:

Math.E = 2.718281828459045
Math.LN2 = 0.6931471805599453
Math.LN10 = 2.302585092994046
Math.LOG2E = 1.4426950408889634
Math.LOG10E = 0.4342944819032518
Math.PI = 3.141592653589793
Math.SQRT1_2 = 0.7071067811865476
Math.SQRT2 = 1.4142135623730951

2、abs() 方法可返回数的绝对值

Math.abs(x);x必须为一个数值,此数可以是整数,小数都可以
document.write(Math.abs(-2.77));//输出2.77

3、acos(x) 返回数的反余弦值。

Math.acos(x);x必须是 -1.0 ~ 1.0 之间的数
如果x不在上述范围,则返回NaN

4、asin() 方法可返回一个数的反正弦值。

Math.asin(x);x必须是一个数值,该值介于 -1.0 ~ 1.0 之间。
如果参数 x 超过了 -1.0 ~ 1.0 的范围,那么浏览器将返回 NaN。

5、atan() 方法可返回数字的反正切值。

Math.atan(x);x 必需。必须是一个数值。
返回的值是 -PI/2 到 PI/2 之间的弧度值。

6、atan2() 方法可返回从 x 轴到点 (x,y) 之间的角度。

Math.atan2(y,x)
-PI 到 PI 之间的值,是从 X 轴正向逆时针旋转到点 (x,y) 时经过的角度。

7、ceil() 方法可对一个数进行上舍入。

什么是上舍入?即大于等于 x,并且与它最接近的整数。
Math.ceil(x);x 必需。必须是一个数值。

document.write(Math.ceil(0.60) + "<br />")

document.write(Math.ceil(0.40) + "<br />")

document.write(Math.ceil(5) + "<br />")

document.write(Math.ceil(5.1) + "<br />")

document.write(Math.ceil(-5.1) + "<br />")

document.write(Math.ceil(-5.9))

输出为:

1
1
5
6
-5
-5

对于负数,你懂的

8、cos() 方法可返回一个数字的余弦值。

Math.cos(x);x 必需。必须是一个数值。 返回的是 -1.0 到 1.0 之间的数。、
x其实要求是输入一个弧度值,例如--->
π代表的是180°等,π即Math.PI
document.write(Math.cos(Math.PI));
输出为-1

但是假如:

document.write(Math.cos(Math.PI/2));

输出为:6.123233995736766e-17

而:

document.write(Math.cos(Math.PI/3));

输出为:0.5000000000000001

为什么会出现这些怪异的数字呢?

其实大家都知道document.write(Math.cos(Math.PI/2));应该输出0,而在Javascript中可能没有求的0,所以就用了一个非常非常小的数代替
类似的document.write(Math.cos(Math.PI/3));应该是0.5才对,但是却在最后面多了一位
这些是小问题,没啥好说的,本身寄存器就不可能表示所有数的,因此在计算过程中出现差错也很正常

9、exp() 方法可返回 e 的 x 次幂的值。

Math.exp(x);x 必需。任意数值或表达式。被用作指数。
返回 e 的 x 次幂。e 代表自然对数的底数,其值近似为 2.71828。
document.write(Math.exp(1) + "<br />");//输出2.718281828459045

10、floor() 方法可对一个数进行下舍入。

和ceil()方法相对应,floor()方法是对一个数进行下舍入,即小于等于 x,且与 x 最接近的整数。
Math.floor(x);

document.write(Math.floor(0.60) + "<br />")

document.write(Math.floor(0.40) + "<br />")

document.write(Math.floor(5) + "<br />")

document.write(Math.floor(5.1) + "<br />")

document.write(Math.floor(-5.1) + "<br />")

document.write(Math.floor(-5.9))

输出为:

0
0
5
5
-6
-6

对于负数,你懂的

11、log() 方法可返回一个数的自然对数。

Math.log(x);//参数 x 必须大于 0,大于0则结果为NaN,等于0则为-Infinity

document.write(Math.log(2.7183) + "<br />")

document.write(Math.log(2) + "<br />")

document.write(Math.log(1) + "<br />")

document.write(Math.log(0) + "<br />")

document.write(Math.log(-1))

输出为:

1.0000066849139877
0.6931471805599453
0
-Infinity
NaN
从上面我们可以看出

12、max() 方法可返回两个指定的数中带有较大的值的那个数。

Math.max(x...),//x 为0或多个值。在 ECMASCript v3 之前,该方法只有两个参数。
返回值:
参数中最大的值。
如果没有参数,则返回 -Infinity。
如果有某个参数为 NaN,或是不能转换成数字的非数字值,则返回 NaN。
如下例:

document.write(Math.max(5,3,8,1));//8

document.write(Math.max(5,3,8,'M'));//NaN

document.write(Math.max(5));//5

document.write(Math.max());//-Infinity

13、min() 方法可返回指定的数字中带有最低值的数字。

Math.min(x,y);x为0或多个值。在 ECMASCript v3 之前,该方法只有两个参数。
返回值:
参数中最小的值。
如果没有参数,则返回 Infinity。
如果有某个参数为 NaN,或是不能转换成数字的非数字值,则返回 NaN。
和max()方法使用类似

14、pow() 方法可返回 x 的 y 次幂的值。

Math.pow(x,y);//
x 必需。底数。必须是数字。
y 必需。幂数。必须是数字。
返回值:
如果结果是虚数或负数,则该方法将返回 NaN。如果由于指数过大而引起浮点溢出,则该方法将返回 Infinity。
如下例:

document.write(Math.pow()+'<br>');

document.write(Math.pow(2)+'<br>');

document.write(Math.pow(2,2)+'<br>');

document.write(Math.pow(2,2,2)+'<br>');

document.write(Math.pow('M',2)+'<br>');

输出:

NaN
NaN
4
4
NaN

15、random() 方法可返回介于 0 ~ 1 之间的一个随机数。

Math.random();//无参
返回:
0.0 ~ 1.0 之间的一个伪随机数。
何为伪随机数?
真正意义的随机数是某次随机事件产生的结果,经过无数次后表现为呈现某种概率论,它是不可预测的
而伪随机数是根据伪随机算法实现的,它是采用了一种模拟随机的算法,因此被称为伪随机数

document.write(Math.random())

0.12645312909485157

16、round() 方法可把一个数字舍入为最接近的整数。

Math.round(x),x 必需。必须是数字。
对于 0.5,该方法将进行上舍入。
例如,3.5 将舍入为 4,而 -3.5 将舍入为 -3。
其实就感觉此方法是用ceil()和floor()方法结合实现的

document.write(Math.round(0.60) + "<br />")

document.write(Math.round(0.50) + "<br />")

document.write(Math.round(0.49) + "<br />")

document.write(Math.round(-4.40) + "<br />")

document.write(Math.round(-4.60))

输出为:

1
1
0
-4
-5

17、sin() 方法可返回一个数字的正弦。

Math.sin(x),x 必需。一个以弧度表示的角。将角度乘以 0.017453293 (2PI/360)即可转换为弧度。
返回值:
参数 x 的正弦值。返回值在 -1.0 到 1.0 之间。

document.write(Math.sin(3) + "<br />")

document.write(Math.sin(-3) + "<br />")

document.write(Math.sin(0) + "<br />")

document.write(Math.sin(Math.PI) + "<br />")

document.write(Math.sin(Math.PI/2)

输出为:

0.1411200080598672
-0.1411200080598672
0
1.2246063538223772e-16
1

18、sqrt() 方法可返回一个数的平方根。

Math.sqrt(x);//x 必需,必须是大于等于 0 的数。
返回值:
参数 x 的平方根。如果 x 小于 0,则返回 NaN。
它相当于Math.pow(x,0.5);

19、tan() 方法可返回一个表示某个角的正切的数字。

Math.tan(x),//x 必需。一个以弧度表示的角。将角度乘以 0.017453293 (2PI/360)即可转换为弧度。

查看更多JavaScript的语法,大家可以关注:《JavaScript 参考教程》、《JavaScript代码风格指南》,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript DOM 编程艺术(第2版)读书笔记(JavaScript的最佳实践)
Oct 01 Javascript
JS验证身份证有效性示例
Oct 11 Javascript
js去除输入框中所有的空格和禁止输入空格的方法
Jun 09 Javascript
深入理解JavaScript系列(30):设计模式之外观模式详解
Mar 03 Javascript
面向切面编程(AOP)的理解
May 01 Javascript
Javascript中prototype属性实现给内置对象添加新的方法
May 14 Javascript
jQuery实现在最后一个元素之前插入新元素的方法
Jul 18 Javascript
JavaScript利用HTML DOM进行文档操作的方法
Mar 28 Javascript
纯JavaScript手写图片轮播代码
Oct 20 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
Feb 28 Javascript
webpack学习教程之前端性能优化总结
Dec 05 Javascript
写一个Vue loading 插件
Nov 09 Javascript
分享jQuery网页元素拖拽插件
Dec 01 #Javascript
【经典源码收藏】基于jQuery的项目常见函数封装集合
Jun 07 #Javascript
全面解析DOM操作和jQuery实现选项移动操作代码分享
Jun 07 #Javascript
全面解析JavaScript里的循环方法之forEach,for-in,for-of
Apr 20 #Javascript
Javascript之Date对象详解
Jun 07 #Javascript
批量下载对路网图片并生成html的实现方法
Jun 07 #Javascript
javascript之Boolean类型对象
Jun 07 #Javascript
You might like
探讨:如何编写PHP扩展
2013/06/13 PHP
PDO::errorCode讲解
2019/01/28 PHP
window.open的功能全解析
2006/10/10 Javascript
一个简单的jQuery插件制作 学习过程及实例
2010/04/25 Javascript
JavaScript操纵窗口的方法小结
2013/06/28 Javascript
非常好用的JsonToString 方法 简单实例
2013/07/18 Javascript
基于jquery的网站幻灯片切换效果焦点图代码
2013/09/15 Javascript
JavaScript控制各种浏览器全屏模式的方法、属性和事件介绍
2014/04/03 Javascript
jquery解析xml字符串简单示例
2014/04/11 Javascript
Javascript控制div属性动态变化实例分析
2015/10/08 Javascript
jquery与ajax获取特殊字符实例详解
2017/01/08 Javascript
简单实现bootstrap导航效果
2017/02/07 Javascript
解决URL地址中的中文乱码问题的办法
2017/02/10 Javascript
JS+HTML5实现图片在线预览功能
2017/07/22 Javascript
jQuery Datatables表头不对齐的解决办法
2017/11/27 jQuery
js实现以最简单的方式将数组元素添加到对象中的方法
2017/12/20 Javascript
Vue实现带进度条的文件拖动上传功能
2018/02/23 Javascript
基于vue实现可搜索下拉框定制组件
2020/03/26 Javascript
nodejs实现范围请求的实现代码
2018/10/12 NodeJs
vue 对象添加或删除成员时无法实时更新的解决方法
2019/05/01 Javascript
解决removeEventListener 无法清除监听的问题
2020/10/30 Javascript
详解vue修改elementUI的分页组件视图没更新问题
2020/11/13 Javascript
一篇文章入门Python生态系统(Python新手入门指导)
2015/12/11 Python
python matplotlib中文显示参数设置解析
2017/12/15 Python
Python numpy 点数组去重的实例
2018/04/18 Python
对python字典过滤条件的实例详解
2019/01/22 Python
PyQt QCombobox设置行高的方法
2019/06/20 Python
在pyqt5中QLineEdit里面的内容回车发送的实例
2019/06/21 Python
pyinstaller打包单个exe后无法执行错误的解决方法
2019/06/21 Python
Python 判断时间是否在时间区间内的实例
2020/05/16 Python
浅谈pycharm导入pandas包遇到的问题及解决
2020/06/01 Python
python获取命令行参数实例方法讲解
2020/11/02 Python
2014两会学习心得:时代的发展
2014/03/17 职场文书
医学生求职信
2014/07/01 职场文书
培训班通知
2015/04/25 职场文书
爱心捐助活动总结
2015/05/09 职场文书