Javascript之Math对象详解

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

1、常量(即属性)

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

下面是它们的值:

代码如下:
"); document.write("Math.LN2 = "+Math.LN2+"
"); document.write("Math.LN10 = "+Math.LN10+"
"); document.write("Math.LOG2E = "+Math.LOG2E+"
"); document.write("Math.LOG10E = "+Math.LOG10E+"
"); document.write("Math.PI = "+Math.PI+"
"); document.write("Math.SQRT1_2 = "+Math.SQRT1_2+"
"); document.write("Math.SQRT2 = "+Math.SQRT2+"
");

输出结果:

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.40) + "
") document.write(Math.ceil(5) + "
") document.write(Math.ceil(5.1) + "
") document.write(Math.ceil(-5.1) + "
") 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

但是假如:

代码如下:
输出为:6.123233995736766e-17

而:

代码如下:
输出为: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) + "
");//输出2.718281828459045

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

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

代码如下:
") document.write(Math.floor(0.40) + "
") document.write(Math.floor(5) + "
") document.write(Math.floor(5.1) + "
") document.write(Math.floor(-5.1) + "
") 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) + "
") document.write(Math.log(1) + "
") document.write(Math.log(0) + "
") document.write(Math.log(-1))

输出为:

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

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

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

代码如下:

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(2)+'
'); document.write(Math.pow(2,2)+'
'); document.write(Math.pow(2,2,2)+'
'); document.write(Math.pow('M',2)+'
');

输出:

NaN NaN 4 4 NaN

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

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

代码如下:
0.12645312909485157

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

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

代码如下:
") document.write(Math.round(0.50) + "
") document.write(Math.round(0.49) + "
") document.write(Math.round(-4.40) + "
") 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) + "
") document.write(Math.sin(0) + "
") document.write(Math.sin(Math.PI) + "
") 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的语法,大家可以关注:《》、《》,也希望大家多多支持编程之家。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


阅读本文之前,分享大家一张图片,看图会发现JavaScript开发需求最高,占比达到42.84%,因此掌握JavaScript语言好工作就不愁啦,工欲善其事必先利其器,那么选择IDE来开发是至关重要的,本文指出常用的几款JavaScript IDE,分析其优缺点,如有不完善的请大家补充
Promises是一种关于异步编程的规范,目的是将异步处理对象和处理规则进行规范化,为异步编程提供统一接口。本文简要的介绍了Promises的基础知识,希望我们我们能够更好的使用Promises,更轻松的编写代码。
引子 Patrick Catanzariti 是一名Web开发工程师,最近他在 sitepoint 发表了《JavaScript Beyond the Web in 2014》,介绍了JavaScript在物联网中的应用,非常有意思。做为JavaScript的爱好者和从业者,我在这里把它翻译了,以飨
小编吐血整理加上翻译,太辛苦了~求赞! 本文主要总结了JavaScript 常用功能总结,如一些常用的JS 对象,基本数据结构,功能函数等,还有一些常用的设计模式。 目录: 众所周知,JavaScript是动态的面向对象的编程语言,能够实现以下效果: 1. 丰富Web 网页功能 2. 丰富Web界面
微软于今日(2015年12月10日)宣布即将开源Chakra核心控件,并改名为“ChakraCore”,该控件包含所有Edge JavaScript 引擎的所有核心功能。ChakraCore 将于下月发布在GitHub中。 Chakra提供了顶级的JavaScript处理功能,并具有非常强大的性能优
通过统计数据库中的1000多个项目,我们发现在 JavaScript 中最常出现的错误有10个。本文会向大家介绍这些错误发生的原因以及如何防止。
TypeScript 和 JavaScript 是目前项目开发中较为流行的两种脚本语言,我们已经熟知 TypeScript 是 JavaScript 的一个超集,但是 TypeScript 与 JavaScript 之间又有什么样的区别呢?在选择开发语言时,又该如何抉择呢?
本文是2017年 JavaScript 框架回顾系列的最后的一篇文章,主要介绍 JavaScript 的后端框架情况。
本文来源于多年的 JavaScript 编码技术经验,适合所有正在使用 JavaScript 编程的开发人员阅读。本文的目的在于帮助大家更加熟练的运用 JavaScript 语言来进行开发工作。
对于前端开发人员来说,如果能够掌握交互式网页中的数据可视化技术,则是一项很棒的技能。当然,通过一些 JavaScript 的图表库也会使前端的数据可视化变得更加容易。
几乎每隔一个星期,就有一个新的 JavaScript 库席卷网络社区!Web 社区日益活跃、多样,并在多个领域快速成长。想要研究每一个重要的 JavaScript 框架和库,是个不可能完成的任务。接下来,我会分享一些前端开发的最著名和最有影响力的框架和库。下面,就让我们一起来看看,顶级的 JavaS
AngularJ.js 由google开发,2009年首次发布 很流行的前端框架 使用Angular.js创建第一个UI,成本很低 对于团队来说,AngularJ.js有许多很棒的工具可用 很适合创建一个快速、混合型复杂的解决方案 比起React,更合适于创建小型企业级应用 由Google负责维护基
Javascript框架(以下简称框架)也被称为Javascript库,是一组包含丰富功能和函数的JavaScript代码集,能够帮助开发者快速完成Web设计和开发工作。随着Web社区的越发活跃,新的框架也层出不穷,目前流行的有:Angular、React、Vue.js和Knockout等。 面对如
对于 JavaScript 社区来说,npm 的主要功能之一就是帮助开发者发掘所需的 npm Registry 中的库和框架。npm 强大的搜索功能能够帮助找到一组相关的软件包,同时其内置的的文档和使用统计信息,可以帮助开发者决定使用哪一种软件包。
前言 SpreadJS作为一款性能出众的纯前端电子表格控件,自2015年发布以来,已经被广泛应用于各领域“在线Excel”数据管理项目中。NPM,作为管理Node.js库最有力的手段,解决了很多NodeJS代码部署的问题。 如今,为让您更方便的使用产品和更好地管理项目中的SpreadJS代码,我们已
前一篇文章中,我们介绍了2017年 JavaScript 框架的整体情况。我们也了解到在众多的前端框架中,目前最为庞大又在快速增长的当属React了,本文就来重点介绍React的生态系统。
ES2017标准已经于2017年6月份正式定稿了,并广泛支持最新的特性:异步函数。如果你曾经被异步JavaScript的逻辑困扰,这么新函数正是为你设计的。
本文将会讨论10个优秀的支持JavaScript,HTML5和CSS开发,并且可以使用Markdown进行文档编写的文本编辑器。
随着现在的编程语言功能越来越成熟、复杂,内存管理也容易被大家忽略。本文将会讨论JavaScript中的内存泄漏以及如何处理,方便大家在使用JavaScript编码时,更好的应对内存泄漏带来的问题。
JavaScript 作为当前最为常见的直译式脚本语言,已经广泛应用于 Web 应用开发中。为了提高Web应用的性能,从 JavaScript 的性能优化方向入手,会是一个很好的选择。本文从加载、上下文、解析、编译、执行和捆绑等多个方面来讲解 JavaScript 的性能优化技巧,以便让更多的前端开