ES6中Math对象新增的方法实例详解


Posted in Javascript onApril 25, 2017

本文实例讲述了ES6中Math对象新增的方法。分享给大家供大家参考,具体如下:

Math.trunc()

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

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

Math.trunc = Math.trunc || function(x) {
 return x < 0 ? Math.ceil(x) : Math.floor(x);
};

Math.sign()

Math.sign方法用来判断一个数到底是正数、负数、还是零。

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

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

Math.cbrt()

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

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

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

Math.clz32()

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

Math.imul()

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

Math.fround()

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

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

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

Math.hypot()

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

对数方法

ES6新增了4个对数相关方法。

(1) Math.expm1()

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

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

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

(2)Math.log1p()

Math.log1p(x)方法返回1 + x的自然对数,即Math.log(1 + x)。如果x小于-1,返回NaN。

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

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

(3)Math.log10()

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

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

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

(4)Math.log2()

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

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

Math.log2 = Math.log2 || function(x) {
 return Math.log(x) / Math.LN2;
};

三角函数方法

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

Math.sinh(x) 返回x的双曲正弦(hyperbolic sine)
Math.cosh(x) 返回x的双曲余弦(hyperbolic cosine)
Math.tanh(x) 返回x的双曲正切(hyperbolic tangent)
Math.asinh(x) 返回x的反双曲正弦(inverse hyperbolic sine)
Math.acosh(x) 返回x的反双曲余弦(inverse hyperbolic cosine)
Math.atanh(x) 返回x的反双曲正切(inverse hyperbolic tangent)

Math.signbit()

Math.sign()用来判断一个值的正负,但是如果参数是-0,它会返回-0。

ES2016 新增了一个指数运算符(**)

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

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

注:在vp8引擎中与Math.pow()结果有些不同。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
用JS实现一个页面多个css样式实现
May 29 Javascript
为Extjs加加速(javascript加速)
Aug 19 Javascript
js 实现图片预加载(js操作 Image对象属性complete ,事件onload 异步加载图片)
Mar 25 Javascript
jquery插件orbit.js实现图片折叠轮换特效
Apr 14 Javascript
jQuery实现html表格动态添加新行的方法
May 28 Javascript
学习Bootstrap组件之下拉菜单
Jul 28 Javascript
在jQuery中使用$而避免跟其它库产生冲突的方法
Aug 13 Javascript
js实现对table的增加行和删除行的操作方法
Oct 13 Javascript
jquery插件canvaspercent.js实现百分比圆饼效果
Jul 18 jQuery
基于jQuery的左滑出现删除按钮的示例
Aug 29 jQuery
node puppeteer(headless chrome)实现网站登录
May 09 Javascript
详解vue父子组件关于模态框状态的绑定方案
Jun 05 Javascript
jquery.form.js异步提交表单详解
Apr 25 #jQuery
关于jQuery中fade(),show()起始位置的一点小发现
Apr 25 #jQuery
深入理解Javascript中的作用域链和闭包
Apr 25 #Javascript
js中字符型和数值型数字的互相转化方法(必看)
Apr 25 #Javascript
JavaScript基于replace+正则实现ES6的字符串模版功能
Apr 25 #Javascript
JS字符串按逗号和回车分隔的方法
Apr 25 #Javascript
使用Math.max,Math.min获取数组中的最值实例
Apr 25 #Javascript
You might like
解析PHP中的正则表达式以及模式匹配
2013/06/19 PHP
ThinkPHP框架搭建及常见问题(XAMPP安装失败、Apache/MySQL启动失败)
2016/04/15 PHP
基于PHP实现数据分页显示功能
2016/05/26 PHP
基于SVG的web页面图形绘制API介绍及编程演示
2013/06/28 Javascript
AngularJS入门知识之MVW类框架的编程思想探讨
2014/12/08 Javascript
2014 年最热门的21款JavaScript框架推荐
2014/12/25 Javascript
Jquery easyui开启行编辑模式增删改操作
2016/01/14 Javascript
jQuery获取父元素及父节点的方法小结
2016/04/14 Javascript
json对象与数组以及转换成js对象的简单实现方法
2016/06/24 Javascript
基于JavaScript实现在新的tab页打开url
2016/08/04 Javascript
react性能优化达到最大化的方法 immutable.js使用的必要性
2017/03/09 Javascript
Vue-cli@3.0 插件系统简析
2018/09/05 Javascript
python操作日期和时间的方法
2014/03/11 Python
Python中.py文件打包成exe可执行文件详解
2017/03/22 Python
Python决策树之基于信息增益的特征选择示例
2018/06/25 Python
Python线程同步的实现代码
2018/10/03 Python
python实现感知器算法(批处理)
2019/01/18 Python
Python使用Pandas对csv文件进行数据处理的方法
2019/08/01 Python
决策树剪枝算法的python实现方法详解
2019/09/18 Python
基于Python解密仿射密码
2019/10/21 Python
详解Anconda环境下载python包的教程(图形界面+命令行+pycharm安装)
2019/11/11 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧装饰器信号与槽详细使用方法与实例
2020/03/06 Python
什么是python类属性
2020/06/10 Python
如何解决python多种版本冲突问题
2020/10/13 Python
Python爬虫逆向分析某云音乐加密参数的实例分析
2020/12/04 Python
详解numpy1.19.4与python3.9版本冲突解决
2020/12/15 Python
html5 Canvas画图教程(9)—canvas中画出矩形和圆形
2013/01/09 HTML / CSS
简述Html5 IphoneX 适配方法
2018/02/08 HTML / CSS
纺织工程专业个人求职信范文
2014/01/27 职场文书
生产部岗位职责范文
2014/02/07 职场文书
2014年社区民政工作总结
2014/12/02 职场文书
2015应届毕业生自荐信范文
2015/03/05 职场文书
小组组名及励志口号
2015/12/24 职场文书
MySQL定时备份数据库(全库备份)的实现
2021/09/25 MySQL
python人工智能human learn绘图可创建机器学习模型
2021/11/23 Python
vue 实现弹窗关闭后刷新效果
2022/04/08 Vue.js