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 相关文章推荐
extjs grid设置某列背景颜色和字体颜色的实现方法
Sep 06 Javascript
IE与Firefox在JavaScript上的7个不同句法分享
Oct 30 Javascript
JavaScript插件化开发教程 (二)
Jan 27 Javascript
jquery 设置style:display的方法
Jan 29 Javascript
JavaScript使用encodeURI()和decodeURI()获取字符串值的方法
Aug 04 Javascript
JavaScript中的call方法和apply方法使用对比
Aug 12 Javascript
js console.log打印对像与数组用法详解
Jan 21 Javascript
关于JSON.parse(),JSON.stringify(),jQuery.parseJSON()的用法
Jun 30 Javascript
Node.js Sequelize如何实现数据库的读写分离
Oct 23 Javascript
详解Angular 开发环境搭建
Jun 22 Javascript
如何解决React官方脚手架不支持Less的问题(小结)
Sep 12 Javascript
JS中超越现实的匿名函数用法实例分析
Jun 21 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完全过滤HTML,JS,CSS等标签
2009/01/16 PHP
解析thinkphp中的导入文件标签
2013/06/20 PHP
PHP中把有符号整型转换为无符号整型方法
2015/05/27 PHP
PHP精确计算功能示例
2016/11/29 PHP
解决Yii2邮件发送结果返回成功,但接收不到邮件的问题
2017/05/23 PHP
由JavaScript技术实现的web小游戏(不含网游)
2010/06/12 Javascript
js中将字符串转换成json的三种方式
2011/01/12 Javascript
jquery给图片添加鼠标经过时的边框效果
2013/11/12 Javascript
jQuery实现复选框成对选择及对应取消的方法
2015/03/03 Javascript
js倒计时简单实现方法
2015/12/17 Javascript
JavaScript的Backbone.js框架的一些使用建议整理
2016/02/14 Javascript
js仿QQ中对联系人向左滑动、滑出删除按钮的操作
2016/04/07 Javascript
第三篇Bootstrap网格基础
2016/06/21 Javascript
详解在Vue中通过自定义指令获取dom元素
2017/03/04 Javascript
Angular 2.x学习教程之结构指令详解
2017/05/25 Javascript
Angular4.0中引入laydate.js日期插件的方法教程
2017/12/25 Javascript
JS运动特效之完美运动框架实例分析
2018/01/24 Javascript
从零开始实现Vue简单的Toast插件
2018/12/03 Javascript
layui使用button按钮 点击出现弹层 弹层中加载表单的实例
2019/09/04 Javascript
JSON 入门教程基础篇 json入门学习笔记
2020/09/22 Javascript
[43:41]VP vs RNG 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
python列表去重的二种方法
2014/02/14 Python
Python接收Gmail新邮件并发送到gtalk的方法
2015/03/10 Python
Ubuntu18.04中Python2.7与Python3.6环境切换
2019/06/14 Python
解决Django删除migrations文件夹中的文件后出现的异常问题
2019/08/31 Python
安装python及pycharm的教程图解
2019/10/10 Python
Python生成个性签名图片获取GUI过程解析
2019/12/16 Python
Python中私有属性的定义方式
2020/03/05 Python
Intimissimi德国网上商店:意大利知名内衣品牌
2018/04/03 全球购物
实验教师岗位职责
2014/02/13 职场文书
大学生英语演讲稿
2014/04/24 职场文书
优秀德育工作者事迹材料
2014/05/07 职场文书
文明好少年事迹材料
2014/08/19 职场文书
2014党员学习《反腐倡廉警示教育读本》思想汇报
2014/09/13 职场文书
2015新年寄语大全
2014/12/08 职场文书
小学教师节活动总结
2015/03/20 职场文书