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 相关文章推荐
javascript qq右下角滑出窗口 sheyMsg
Mar 21 Javascript
json2.js的初步学习与了解
Oct 06 Javascript
js操作iframe的一些方法介绍
Jun 25 Javascript
判断是否安装flash player及当前版本的JS代码
Aug 08 Javascript
jQuery取得设置清空select选择的文本与值
Jul 08 Javascript
js实现用户离开页面前提示是否离开此页面的方法(包括浏览器按钮事件)
Jul 18 Javascript
页面间固定参数,通过cookie传值的实现方法
May 31 Javascript
基于jQuery和CSS3实现APPLE TV海报视差效果
Jun 16 jQuery
JS实现手写parseInt的方法示例
Sep 24 Javascript
浅析node.js的模块加载机制
May 25 Javascript
原生JS封装vue Tab切换效果
Apr 28 Vue.js
vue 自定义的组件绑定点击事件
Apr 21 Vue.js
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
浅谈discuz密码加密的方式
2014/05/22 PHP
php实现与erlang的二进制通讯实例解析
2014/07/23 PHP
CodeIgniter多语言实现方法详解
2016/01/20 PHP
php版微信返回用户text输入的方法
2016/11/14 PHP
js优化针对IE6.0起作用(详细整理)
2012/12/25 Javascript
jQuery Pagination Ajax分页插件(分页切换时无刷新与延迟)中文翻译版
2013/01/11 Javascript
最短的IE判断var ie=!-[1,]分析
2014/05/28 Javascript
JQuery节点元素属性操作方法
2015/06/11 Javascript
JavaScript的兼容性与调试技巧
2016/11/22 Javascript
3分钟快速搭建nodejs本地服务器方法运行测试html/js
2017/04/01 NodeJs
JS判断数组那点事
2017/10/10 Javascript
详解基于vue-cli配置移动端自适应
2018/01/13 Javascript
微信小程序之分享页面如何返回首页的示例
2018/03/28 Javascript
详解ES6 系列之异步处理实战
2018/10/26 Javascript
微信实现自动跳转到用其他浏览器打开指定APP下载
2019/02/15 Javascript
webpack自动打包和热更新的实现方法
2019/06/24 Javascript
使用vue实现各类弹出框组件
2019/07/03 Javascript
vue router动态路由设置参数可选问题
2019/08/21 Javascript
Python中字典(dict)和列表(list)的排序方法实例
2014/06/16 Python
解决python3爬虫无法显示中文的问题
2018/04/12 Python
浅谈pycharm的xmx和xms设置方法
2018/12/03 Python
python实现银联支付和支付宝支付接入
2019/05/07 Python
python getpass模块用法及实例详解
2019/10/07 Python
Python sqlite3查询操作过程解析
2020/02/20 Python
Django搭建项目实战与避坑细节详解
2020/12/06 Python
CSS3 :not()选择器实现最后一行li去除某种css样式
2016/10/19 HTML / CSS
俄语地区最大的中国商品在线购物网站之一:Umka Mall
2019/11/03 全球购物
事业单位请假制度
2014/01/13 职场文书
销售经理岗位职责
2014/03/16 职场文书
个人担保书格式范文
2014/05/12 职场文书
村安全生产责任书
2014/08/25 职场文书
大学生毕业个人总结
2015/02/15 职场文书
nginx反向代理时如何保持长连接
2021/03/31 Servers
javascript数组includes、reduce的基本使用
2021/07/02 Javascript
Selenium浏览器自动化如何上传文件
2022/04/06 Python
Python使用mitmproxy工具监控手机 下载手机小视频
2022/04/18 Python