ES6在Math对象上新增了17个与数学相关的方法。所有这些方法都是静态方法,只能在Math对象上调用。

1.Math.trunc()

  Math.trunc方法用于去除一个数的小数部分,返回整数部分。

  对于非数值,Math.trunc内部使用Number方法将其先转为数值。

  对于空值和无法截取整数的值,返回NaN。

    对于没有部署这个方法的环境,可以用下面的代码模拟。

Math.sign = Math.sign || function(){
x = +x; // convert to a number
if (x === 0 || isNaN(x)){
return x;
}
return x > 0 ? 1 : -1
}

3.Math.cbrt()

  Math.cbrt方法用于计算一个数的立方根。

  对于没有部署这个方法的环境,可以用下面的代码模拟。

Math.cbrt = Math.cbrt || function(x){
var y = Math.pow(Math.abs(x),1/3);
return x < 0 ? -y : y;
};

4.Math.clz32()

  JavaScript的整数使用32位二进制形式表示,Math.clz32方法返回一个数的32位无符号整数形式有多少个前导0。

  上面的代码中,0的二进制形式全是0,所以有32个前导0;1的二进制形式是0b1,只占1位,所以32位中有31个前导0。

5.Math.imul()

  Math.imul方法返回两个数以32位带符号整数形式相乘的结果,返回的也是一个32位的带符号整数。

6.Math.fround()

  Math.fround返回一个数的单精度浮点数形式。

  对于没有部署这个方法的环境,可以用下面的代码模拟。

Math.fround = Math.fround || function(x){
return new Float32Array([x])[0];
}

7.Math.hypot()

  Math.hypot方法返回所有参数的平方和的平方根。

  如果参数不是数值,Math.hypot方法会将其转为数值。

[ 对数方法 ]

- Math.expm1()

  Math.expm1(x)返回e^x-1,即Math.exp(x) - 1。

  对于没有部署这个方法的环境,可以用下面的代码模拟。

Math.expm1 = Math.expm1 || function(x){
return Math.exp(x) -1;
}

- Math.log1p()

  Math.log1p(x)方法返回\ln(1+x),即Math.log(1+x)。如果x小于-1,则返回NaN。

  对于没有部署这个方法的环境,可以用下面的代码模拟。

Math.log1p = Math.log1p || function(x){
return Math.log(1+x);
}

- Math.log10()

  Math.log10(x)返回以10为底的x的对数。如果x小于0,则返回NaN。

  对于没有部署这个方法的环境,可以用下面的代码模拟。

Math.log10 = Math.log10 || function(x){
return Math.log(x) / Math.LN10;
}

- Math.log2()

  Math.log2(x)返回以2为底x的对数。如果x小于0,则返回NaN。

[ 三角函数方法 ]

  ES6新增了6个三角函数方法。

  ● Math.sinh(x):返回x的双曲正弦。

  ● Math.cosh(x):返回x的双曲余弦。

  ● Math.tanh(x):返回x的双曲正切。

  ● Math.asinh(x):返回x的反双曲正弦。

  ● Math.acosh(x):返回x的反双曲余弦。

  ● Math.atanh(x):返回x的反双曲正切。

[ 指数运算符 ]

  ES7新增了一个指数运算符(**),目前Babel转码器已经支持。

2 ** 2   //
2 ** 3 //

  指数运算符可以和等号结合,形成一个新的赋值运算符(**=)。

let a = 2;
a **= 2;
// 等同于 a = a * a;

ES 6 : Math对象的扩展的更多相关文章

  1. ES6 对Math对象的扩展

    Math 对象的扩展 Math.trunc() Math.trunc(4.1) // 4 Math.trunc(4.9) // 4 Math.trunc(-4.1) // -4 Math.trunc( ...

  2. ES6 之 Math对象的扩展

    1.ES5 http://www.w3school.com.cn/jsref/jsref_obj_math.asp 2.ES6 Math.trunc() - 取整,去掉一个数的小数部分 console ...

  3. es严格模式、对象和扩展。

    01. 严格模式 1. 理解: * 除了正常运行模式(混杂模式),ES5添加了第二种运行模式:"严格模式"(strict mode). * 顾名思义,这种模式使得Javascrip ...

  4. es6学习笔记--字符串&数值&数组&函数&对象的扩展

    这几天抽空学习了es6语法,关于字符串,数值,数组,函数以及对象的扩展,看到es6标准入门这本书,里面讲的扩展特别多,我认为有几部分在项目上用不到,就挑有用的当笔记学习了. 字符串的扩展 str.in ...

  5. JS:Math 对象方法

    Math 对象方法方法     描述Math.ceil(x)     对数进行上舍入.(向上取整:大于等于x的最小整数)Math.floor(x)     对数进行下舍入.(小于等于x的最大整数)Ma ...

  6. JavaScript原生对象及扩展

    来源于 https://segmentfault.com/a/1190000002634958 内置对象与原生对象 内置(Build-in)对象与原生(Naitve)对象的区别在于:前者总是在引擎初始 ...

  7. web前端之es6对象的扩展

    1.属性的简洁表示法 2.属性名表达式 表达式作为对象的属性名 3.方法的 name 属性 例如:函数的name 属性,返回函数名. 4.Object.is() ES 比较两个值是否相等,只有两个运算 ...

  8. ES6—数值(Number,Math对象)(复习+学习)

    ES6-数值(Number,Math对象)(复习+学习) 每天一学,今天要学习ES6的关于数的扩展以及复习,然后通过看书,查阅资料,以及webAPI来搞清楚遇到的,没见过的对象方法等等,下面为本次学习 ...

  9. #9.6课堂JS总结#变量作用域 date()对象 math()对象

    一.变量的作用域 1.JavaScript的作用域链 首先看下下面这段代码: <script type="text/javascript"> var rain = 1; ...

随机推荐

  1. 关于ADB server didn't ACK * failed to start daemon *的问题

    查看5037端口被谁占用了, 开始--运行--CMD 到命令提示符,输入 netstat -aon|findstr "5037" 输入 tasklist|findstr " ...

  2. IOC and DI

    Spring.Net 技术简介 IOC and DI   一 简单介绍            IOC 控制转移,就是将创建放到容器里,从而达到接耦合的目的,DI是 在容器创建对象的时候,DI读取配置文 ...

  3. web-worker计数器,根据输入时间统计次数

    1.用web-worker实现:另起一个线程,将计数工作运行在后台的JavaScript文件,并返回累加后的结果. 该js文件运行于后台,独立于其他脚本,不会影响页面的性能.html页面可以继续做任何 ...

  4. UML六种关系

    UML六种关系 基础之上,并对其进行了扩展.在程序中是通过继承类实现的.比如狗是对动物的具体描述,在面向对象设计的时候一般把狗设计为动物的子类. 表示方法:空心三角形箭头的实线,子类指向父类 实现 概 ...

  5. Oracle日志文件的管理与查看

    --Oracle日志文件管理与查看 select * from v$sql (#查看最近所作的操作) --select * fromv $sqlarea(#查看最近所作的操作) -- 1.查询系统使用 ...

  6. Linux CPU监控指标

    Linux CPU监控指标 Linux提供了非常丰富的命令可以进行CPU相关数据进行监控,例如:top.vmstat等命令.top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执 ...

  7. .net基础收集

    .net基础收集 最近的面试让我知道基础知识的重要性,而我也每天都在网上找一些基础题来看.其实面试无非都是一些理论基础,只有基础过关了,才会被问到技术性的问题,所以第一关一定要打好.下面是我收集的一些 ...

  8. [Android学习笔记4]四大应用组件之一:Service 上

    一.什么是Service 一个Service就是一个能够在后台执行长时操作的应用程序组件,并且不提供用户界面.一个应用程序组件能够启动一个Service,即使用户切换到另一个应用程序,这个Servic ...

  9. 从零开始学C++之继承(二):继承与构造函数、派生类到基类的转换

    一.不能自动继承的成员函数 构造函数 析构函数 =运算符 二.继承与构造函数 基类的构造函数不被继承,派生类中需要声明自己的构造函数. 声明构造函数时,只需要对本类中新增成员进行初始化,对继承来的基类 ...

  10. java异常处理01

    当我们做java项目的时候,多多少少都会出现一些异常,如何快速处理异常也将会影响到一个项目开发的进度. 以下将是面对的一些异常将如何去处理: 1.数据库没有启动 解决方法:计算机-->管理--& ...