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 相关文章推荐
css把超出的部分显示为省略号的方法兼容火狐
Jul 23 Javascript
Js callBack 返回前一页的js方法
Nov 30 Javascript
原生javascript获取元素样式属性值的方法
Dec 25 Javascript
读jQuery之九 一些瑕疵说明
Jun 21 Javascript
jquery实现图片渐变切换兼容ie6/Chrome/Firefox
Aug 02 Javascript
JS实现弹出居中的模式窗口示例
Jun 20 Javascript
JS控制文本域只读或可写属性的方法
Jun 24 Javascript
Vue.js系列之项目搭建(1)
Jan 03 Javascript
JS动态生成年份和月份实例代码
Feb 04 Javascript
vue+echarts实现动态绘制图表及异步加载数据的方法
Oct 17 Javascript
Vue 实现登录界面验证码功能
Jan 03 Javascript
JavaScript代码实现简单计算器
Dec 27 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
如何冲泡挂耳包咖啡?技巧是什么
2021/03/04 冲泡冲煮
ajax取消挂起请求的处理方法
2013/03/18 PHP
php foreach正序倒序输出示例代码
2014/07/01 PHP
thinkphp获取栏目和文章当前位置的方法
2014/10/29 PHP
php简单的上传类分享
2016/05/15 PHP
php与c 实现按行读取文件实例代码
2017/01/03 PHP
在视频前插入广告
2006/11/20 Javascript
Javascript基础教程之break和continue语句
2015/01/18 Javascript
angular中使用路由和$location切换视图
2015/01/23 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(二)
2015/12/10 Javascript
js实现多行文本框统计剩余字数功能
2017/03/28 Javascript
jQuery鼠标移动图片上实现放大效果
2017/06/25 jQuery
一步步教你利用Canvas对图片进行处理
2017/09/19 Javascript
JS+jQuery实现注册信息的验证功能
2017/09/26 jQuery
elementUI select组件使用及注意事项详解
2019/05/29 Javascript
使用RxJS更优雅地进行定时请求详析
2019/06/02 Javascript
vue项目从node8.x升级到12.x后的问题解决
2019/10/25 Javascript
js正则匹配多个全部数据问题
2019/12/20 Javascript
简单介绍Python的Django框架加载模版的方式
2015/07/20 Python
用 Python 爬了爬自己的微信朋友(实例讲解)
2017/08/25 Python
解决python3 安装完Pycurl在import pycurl时报错的问题
2018/10/15 Python
python抓取搜狗微信公众号文章
2019/04/01 Python
python数据归一化及三种方法详解
2019/08/06 Python
python批量解压zip文件的方法
2019/08/20 Python
基于python判断目录或者文件代码实例
2019/11/29 Python
pycharm内无法import已安装的模块问题解决
2020/02/12 Python
Python3 xml.etree.ElementTree支持的XPath语法详解
2020/03/06 Python
基于python模拟bfs和dfs代码实例
2020/11/19 Python
教师业务学习制度
2014/01/25 职场文书
挖掘机司机岗位职责
2014/02/12 职场文书
活动总结的格式
2014/05/07 职场文书
高等学院职业生涯规划书范文
2014/09/16 职场文书
基于Nginx实现限制某IP短时间访问次数
2021/03/31 Servers
Oracle更换为MySQL遇到的问题及解决
2021/05/21 Oracle
使用Python开发冰球小游戏
2022/04/30 Python
MySQL如何使备份得数据保持一致
2022/05/02 MySQL