Math对象

本文参考MDN做的详细整理,方便大家参考MDN
Math 也是一个内置对象, 为数学常量和数学函数提供了属性和方法,而不是一个函数对象。

与其它全局对象不同的是, Math 不是一个构造器. Math 的所有属性和方法都是静态的. 你用到的常数pi可以用 Math.PI 表示,用 x 作参数 Math.sin(x)调用sin函数. JavaScript中的常数, 是以全精度的实数定义的.

属性:

Math.E
欧拉常数,也是自然对数的底数, 约等于 2.718.
Math.LN2
2的自然对数, 约等于0.693.
Math.LN10
10的自然对数, 约等于 2.303.
Math.LOG2E
以2为底E的对数, 约等于 1.443.
Math.LOG10E
以10为底E的对数, 约等于 0.434.
Math.PI
圆周率,一个圆的周长和直径之比,约等于 3.14159.
Math.SQRT1_2
1/2的平方根, 约等于 0.707.
Math.SQRT2
2的平方根,约等于 1.414.

方法:

需要注意的是:
三角函数(sin(), cos(), tan(),asin(), acos(), atan(), atan2())是以弧度返回值的。可以通过除法(Math.PI / 180)把弧度转换为角度,也可以通过其他方法来转换。
很多数学函数都有一个精度,并且精度在不同环境下也是不相同的。这就意味着不同的浏览器会给出不同的结果,甚至相同的 JS 引擎在不同的OS或者架构下也会给出不同的结果。

Math.ceil(x)
返回x向上取整后的整数值.
Math.floor(x)
返回x向下取整后的整数值.。
Math.round(x)
返回四舍五入后的整数.
Math.sqrt(x)
返回x的平方根.如果参数 number 为负值,则 sqrt 返回 NaN。
Math.tan(x)
返回x的正切值,x表示一个角(单位:弧度)
Math.abs(x)
返回x的绝对值.传入一个非数字形式的字符串或者 undefined/empty 变量,将返回 NaN。传入 null 将返回 0。
Math.sin(x)
返回一个 -1 到 1 之间的数值,表示给定角度(单位:弧度)的正弦值
Math.acos(x)
返回一个数的反余弦值(单位为弧度)。acos 方法以 -1 到 1 的一个数为参数,返回一个 0 到 pi (弧度)的数值。如果传入的参数值超出了限定的范围,将返回 NaN
Math.asin(x)
返回一个数值的反正弦(单位为弧度)。asin 方法接受 -1 到 1 之间的数值作为参数,返回一个介于-π/2到π/2弧度的数值。如果接受的参数值超出范围,则返回 NaN。
Math.atan(x)
返回一个数值的反正切(以弧度为单位),以介于 -PI/2 与 PI/2 弧度之间的数值来返回 x 的反正切值.
Math.atan2(x, y)
返回 y/x 的反正切值. atan2 方法返回一个 -pi 到 pi 之间的数值,表示点 (x, y) 对应的偏移角度。这是一个逆时针角度,以弧度为单位,正X轴和点 (x, y) 与原点连线 之间。注意此函数接受的参数:先传递 y 坐标,然后是 x 坐标。
atan2 接受单独的 x 和 y 参数,而 atan 接受两个参数的比值
Math.cos(x)
返回x的余弦值.返回一个 -1 到 1 之间的数值,表示角度(单位:弧度)的余弦值。
Math.exp(x)
返回 Ex, 当x为参数, E 是欧拉常数 (2.718...), 自然对数的底.
Math.log(x)
返回一个数的自然对数,如果指定的 number 为负数,则返回值为 NaN。
Math.max([x[,y[,…]]])
返回0个到多个数值中最大值。
如果没有参数,则结果为 - Infinity。
如果有任一参数不能被转换为数值,则结果为 NaN。
Math.min([x[,y[,…]]])
返回0个到多个数值中最小值,Math.min 经常用于裁剪一个值,以便使其总是小于或等于某个边界值
如果没有参数,则结果为 Infinity。
如果有任一参数不能被转换为数值,则结果为 NaN。
Math.pow(x,y)
返回x的y次幂.
Math.random()
返回0到1之间的伪随机数(大于等于0,小于1),以当前时间为随机数种子
Math.floor(Math.random() * (max - min + 1) + min); // 返回一个介于min和max之间的整型随机数

以下ES6新增:

log10(), log2(), log1p(), expm1(), cosh(), sinh(), tanh(), acosh(), asinh(), atanh(), hypot(), trunc(), sign(), imul(), fround(), cbrt() clz32()
Math.acosh(x)
返回x的反双曲余弦值.
Math.asinh(x)
返回x的反双曲正弦值.
Math.atanh(x)
返回 x 的反双曲正切值.
Math.cbrt(x)
返回x的立方根.
Math.clz32(x)
Returns the number of leading zeroes of a 32-bit integer.
Math.cosh(x)
返回x的双曲余弦值.
Math.expm1(x)
返回 exp(x)-1 的值.
Math.fround(x)
Returns the nearest single precision float representation of a number.
Math.hypot([x[,y[,…]]])
Returns the square root of the sum of squares of its arguments.
Math.imul(x)
Returns the result of a 32-bit integer multiplication.
Math.log1p(x)
Returns the natural logarithm of 1 + x (loge, also ln) of a number.
Math.log10(x)
Returns the base 10 logarithm of x.
Math.log2(x)
Returns the base 2 logarithm of x.
Math.sign(x)
返回x的符号函数, 判定x是正数,负数还是0.
Math.sinh(x)
返回x的双曲正弦值.
Math.tanh(x)
返回x的双曲正切值.
Math.trunc(x)
返回x的整数部分,去除小数.

原生JS:Math对象详解的更多相关文章

  1. JS变量对象详解

    JS变量对象详解 开年之后工作热情一直不是很高,这几天一直处于消极怠工状态.早上不想起床,起床了不想上班.明明放假之前工作热情还一直很高,一直心心念念的想把小程序项目怼出来,结果休假回来之后画风完全不 ...

  2. Javascript学习之Math对象详解

    1.定义 Math 是一个内置对象, 为数学常量和数学函数提供了属性和方法.  Math 不是一个函数对象 Math 不是一个构造器.  Math 的所有属性和方法都是静态的 2.属性 Math.E ...

  3. JavaScript数据类型 Math对象详解

    前言 javascript使用算术运算符实现基本的算术运算,如果要实现更加复杂的算术运算,需要通过Math对象定义的常量和函数来实现.和其他对象不同,Math只是一个静态对象,并没有Math()构造函 ...

  4. JS DATE对象详解

    1.建立时间对象:可获取年,月,日,星期,时,分,秒 var d = new Date(); console.log(d.getFullYear()+'年'+d.getMonth()+'月'+d.ge ...

  5. 前端高质量知识(三)-JS变量对象详解

    在JavaScript中,我们肯定不可避免的需要声明变量和函数,可是JS解析器是如何找到这些变量的呢?我们还得对执行上下文有一个进一步的了解. 在上一篇文章中,我们已经知道,当调用一个函数时(激活), ...

  6. JS window对象详解

    window 是客户端浏览器对象模型的基类,window 对象是客户端 JavaScript 的全局对象.一个 window 对象实际上就是一个独立的窗口,对于框架页面来说,浏览器窗口每个框架都包含一 ...

  7. js对象详解(JavaScript对象深度剖析,深度理解js对象)

    js对象详解(JavaScript对象深度剖析,深度理解js对象) 这算是酝酿很久的一篇文章了. JavaScript作为一个基于对象(没有类的概念)的语言,从入门到精通到放弃一直会被对象这个问题围绕 ...

  8. JS中的event 对象详解

    JS中的event 对象详解   JS的event对象 Event属性和方法:1. type:事件的类型,如onlick中的click:2. srcElement/target:事件源,就是发生事件的 ...

  9. ES6,ES2105核心功能一览,js新特性详解

    ES6,ES2105核心功能一览,js新特性详解 过去几年 JavaScript 发生了很大的变化.ES6(ECMAScript 6.ES2105)是 JavaScript 语言的新标准,2015 年 ...

随机推荐

  1. CSS布局(上)

    CSS布局(上) *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !import ...

  2. 百度地图JavaScript API覆盖物旋转时出现偏移

    在项目中,调用百度地图JavaScript API,做覆盖物的旋转再添加到地图上,结果出现偏移了. 调试过程中的效果图: 发现图片的旋转并不是按车子的中心来的,而是之外的一个点.最后发现犯了一个很细节 ...

  3. [转载]UML用例图总结

    前言 用例图主要用来描述“用户.需求.系统功能单元”之间的关系.它展示一个外部用户能够观察到的系统功能模型图.用例图多用于静态建模阶段(主要是业务建模和需求建模),帮助开发团队以一种可视化的方式理解系 ...

  4. 机器学习&数据挖掘笔记_14(GMM-HMM语音识别简单理解)

    为了对GMM-HMM在语音识别上的应用有个宏观认识,花了些时间读了下HTK(用htk完成简单的孤立词识别)的部分源码,对该算法总算有了点大概认识,达到了预期我想要的.不得不说,网络上关于语音识别的通俗 ...

  5. kafka设计原理介绍

    背景介绍 Kafka简介 Kafka是一种分布式的,基于发布/订阅的消息系统.主要设计目标如下: 以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间的访问性能 高吞吐 ...

  6. 解决SpringMVC的@ResponseBody返回中文乱码

    SpringMVC的@ResponseBody返回中文乱码的原因是SpringMVC默认处理的字符集是ISO-8859-1,在Spring的org.springframework.http.conve ...

  7. 30天C#基础巩固------面向鸭子编程,关于string和File的练习

         面向对象编程就是面向抽象的父类进行编程,具体的实现不用考虑,由子类决定.<经典的说法--面向鸭子编程> eg:鸭子的编程,<对于多态的理解>     我们都习惯把使用 ...

  8. VUE2.0不可忽视的很多变化

    今天使用webpack-sample初始一个vue-cli项目,在app.vue文件中添加了个钩子函数ready,可是ready内的事件一直不执行,检查了webpack文件和package.json也 ...

  9. ORLEANS REMOTE DEPLOYMENT

    Orleans Remote Deployment Table of Contents Overview: 1 Prerequisites. 2 Deployment Steps. 2 Orleans ...

  10. 插入排序---直接插入排序算法(Javascript版)

    将n个元素的数列分为已有序和无序两个部分. 数列:{a1,a2,a3,a4,…,an} 将该数列的第一元素视为有序数列,后面都视为无序数列: {{a1},{a2,a3,a4,…,an}} 将无序数列中 ...