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实现页面滚动图片加载(仿lazyload效果)
Jul 22 Javascript
javascript利用apply和arguments复用方法
Nov 25 Javascript
node.js中的http.request方法使用说明
Dec 14 Javascript
对JavaScript客户端应用编程的一些建议
Jun 24 Javascript
Jquery简单分页实现方法
Jul 24 Javascript
基于replaceChild制作简单的吞噬特效
Sep 21 Javascript
jquery弹出遮掩层效果【附实例代码】
Apr 28 Javascript
jQuery.form.js的使用详解
Jun 14 jQuery
浅谈angular.js跨域post解决方案
Aug 30 Javascript
vscode下的vue文件格式化问题
Nov 28 Javascript
ES6函数实现排它两种写法解析
May 13 Javascript
原生Javascript+HTML5一步步实现拖拽排序
Jun 12 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
DIY实用性框形天线
2021/03/02 无线电
php通过两层过滤获取留言内容的方法
2016/07/11 PHP
windows环境下使用Composer安装ThinkPHP5
2018/05/18 PHP
在你的网页中嵌入外部网页的方法
2007/04/02 Javascript
麦鸡的TAB切换功能结合了javascript和css
2007/12/17 Javascript
Dreamweaver jQuery智能提示插件,支持版本提示,支持1.6api
2011/07/31 Javascript
js中键盘事件实例简析
2015/01/10 Javascript
jQuery右下角旋转环状菜单特效代码
2015/08/10 Javascript
JS实现仿Windows经典风格的选项卡Tab切换代码
2015/10/20 Javascript
Javascript中this绑定的3种方法与比较
2016/10/13 Javascript
原生JS版和jquery版实现checkbox的全选/全不选/点选/行内点选(Mr.Think)
2016/10/29 Javascript
详解AngularJS1.6版本中ui-router路由中/#!/的解决方法
2017/05/22 Javascript
JavaScript对象_动力节点Java学院整理
2017/06/23 Javascript
js制作简单的音乐播放器的示例代码
2017/08/28 Javascript
vue使用xe-utils函数库的具体方法
2018/03/06 Javascript
利用weixin-java-miniapp生成小程序码并直接返回图片文件流的方法
2019/03/29 Javascript
基于javascript的无缝滚动动画1
2020/08/07 Javascript
Javascript柯里化实现原理及作用解析
2020/10/22 Javascript
js实现有趣的倒计时效果
2021/01/19 Javascript
教大家使用Python SqlAlchemy
2016/02/12 Python
Python实现的异步代理爬虫及代理池
2017/03/17 Python
Python读取Json字典写入Excel表格的方法
2018/01/03 Python
python针对excel的操作技巧
2018/03/13 Python
Django Web开发中django-debug-toolbar的配置以及使用
2018/05/06 Python
深入浅析Python传值与传址
2018/07/10 Python
Python enumerate函数功能与用法示例
2019/03/01 Python
pytorch中 gpu与gpu、gpu与cpu 在load时相互转化操作
2020/05/25 Python
解决tensorflow 释放图,删除变量问题
2020/06/23 Python
利用python对mysql表做全局模糊搜索并分页实例
2020/07/12 Python
对python中list的五种查找方法说明
2020/07/13 Python
python实现画图工具
2020/08/27 Python
详解如何修改python中字典的键和值
2020/09/29 Python
欧洲、亚洲、非洲和拉丁美洲的度假套餐:Great Value Vacations
2019/03/30 全球购物
Michael Kors香港官网:美国奢侈品品牌
2019/12/26 全球购物
销售会计工作职责
2013/12/02 职场文书
幼儿园辞职信
2015/05/13 职场文书