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 面向对象编程 万物皆对象
Sep 17 Javascript
Jquery带搜索框的下拉菜单
May 06 Javascript
一个很有趣3D球状标签云兼容IE8
Aug 22 Javascript
jQuery实现鼠标滚轮动态改变样式或效果
Jan 05 Javascript
JQuery查找DOM节点的方法
Jun 11 Javascript
详解javascript传统方法实现异步校验
Jan 22 Javascript
angularjs的select使用及默认选中设置
Apr 08 Javascript
vue后台管理之动态加载路由的方法
Aug 13 Javascript
react build 后打包发布总结
Aug 24 Javascript
JavaScript 变量,数据类型基础实例详解【变量、字符串、数组、对象等】
Jan 04 Javascript
node 版本切换的实现
Feb 02 Javascript
一文彻底理解js原生语法prototype,__proto__和constructor
Oct 24 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小马小结(方便查找后门的朋友)
2012/05/05 PHP
那些年我们错过的魔术方法(Magic Methods)
2014/01/14 PHP
php设计模式之单例模式实例分析
2015/02/25 PHP
PHP 获取ip地址代码汇总
2015/07/05 PHP
详解PHP序列化反序列化的方法
2015/10/27 PHP
jquery tools 系列 scrollable(2)
2009/09/06 Javascript
js最简单的拖拽效果实现代码
2010/09/24 Javascript
jQuery+CSS 半开折叠效果原理及代码(自写)
2013/03/04 Javascript
基于jquery插件制作左右按钮与标题文字图片切换效果
2013/11/07 Javascript
SeaJS入门教程系列之使用SeaJS(二)
2014/03/03 Javascript
JS功能代码集锦
2016/05/04 Javascript
js实现鼠标移动到图片产生遮罩效果
2017/10/21 Javascript
JavaScript学习总结(一) ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)
2018/01/07 Javascript
vue判断input输入内容全是空格的方法
2018/03/02 Javascript
Vue自定义toast组件的实例代码
2018/08/15 Javascript
trackingjs+websocket+百度人脸识别API实现人脸签到
2018/11/26 Javascript
JavaScript arguments.callee作用及替换方案详解
2020/09/02 Javascript
浅析Python基础-流程控制
2016/03/18 Python
在python中bool函数的取值方法
2018/11/01 Python
Python从文件中读取数据的方法讲解
2019/02/14 Python
djano一对一、多对多、分页实例代码
2019/08/16 Python
tensorflow 实现自定义梯度反向传播代码
2020/02/10 Python
利用 PyCharm 实现本地代码和远端的实时同步功能
2020/03/23 Python
完美解决TensorFlow和Keras大数据量内存溢出的问题
2020/07/03 Python
python爬取网易云音乐热歌榜实例代码
2020/08/07 Python
python 多线程中join()的作用
2020/10/29 Python
HTML5 常用语法一览(列举不支持的属性)
2010/01/26 HTML / CSS
webView加载html图片遇到的问题解决
2019/10/08 HTML / CSS
台湾最大银发乐活百货:乐龄网
2018/05/21 全球购物
请写出 float x 与"零值"比较的 if 语句
2016/01/04 面试题
工业学校毕业生自荐书
2014/01/03 职场文书
县政协领导班子群众路线教育实践活动四风问题整改方案
2014/10/26 职场文书
幼儿园小班开学寄语(2016秋季)
2015/12/03 职场文书
2016简历自荐信优秀范文
2016/01/29 职场文书
Python按顺序遍历并读取文件夹中文件
2022/04/29 Python
Golang Web 框架Iris安装部署
2022/08/14 Python