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 相关文章推荐
理清apply(),call()的区别和关系
Aug 14 Javascript
JQuery一种取同级值的方式(比如你在GridView中)
Mar 15 Javascript
Js 冒泡事件阻止实现代码
Jan 27 Javascript
原生js操作checkbox用document.getElementById实现
Oct 12 Javascript
form.submit()不能提交表单的错误原因及解决方法
Oct 13 Javascript
js实现jquery的offset()方法实例
Jan 10 Javascript
javascript多物体运动实现方法分析
Jan 08 Javascript
浅析JS操作DOM的一些常用方法
May 13 Javascript
基于jQuery和hwSlider实现内容左右滑动切换效果附源码下载(一)
Jun 22 Javascript
解析vue中的$mount
Dec 21 Javascript
详解vue2.6插槽更新v-slot用法总结
Mar 09 Javascript
详解基于 Node.js 的轻量级云函数功能实现
Jul 08 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
超强分页类2.0发布,支持自定义风格,默认4种显示模式
2007/01/02 PHP
Discuz 6.0+ 批量注册用户名
2009/09/13 PHP
PHP goto语句简介和使用实例
2014/03/11 PHP
javascript some()函数用法详解
2014/11/13 PHP
PHP使用递归方式列出当前目录下所有文件的方法
2015/06/02 PHP
php微信开发之百度天气预报
2016/11/18 PHP
php结合redis高并发下发帖、发微博的实现方法
2016/12/15 PHP
php的常量和变量实例详解
2017/06/27 PHP
PHP之认识(二)关于Traits的用法详解
2019/04/11 PHP
Array对象方法参考
2006/10/03 Javascript
javascript Xml增删改查(IE下)操作实现代码
2009/01/30 Javascript
从jQuery.camelCase()学习string.replace() 函数学习
2011/09/13 Javascript
日期处理的js库(迷你版)--自建js库总结
2011/11/21 Javascript
用js判断页面刷新或关闭的方法(onbeforeunload与onunload事件)
2012/06/22 Javascript
jquery获取css中的选择器(实例讲解)
2013/12/02 Javascript
14款NodeJS Web框架推荐
2014/07/11 NodeJs
JavaScript探测CSS动画是否已经完成的方法
2016/08/30 Javascript
js捕捉键盘事件和按键键值的方法
2016/10/10 Javascript
Bootstrap基本组件学习笔记之分页(12)
2016/12/08 Javascript
解析NodeJS异步I/O的实现
2017/04/13 NodeJs
vue.draggable实现表格拖拽排序效果
2018/12/01 Javascript
栈和队列数据结构的基本概念及其相关的Python实现
2015/08/24 Python
Python操作Excel之xlsx文件
2017/03/24 Python
在python中利用numpy求解多项式以及多项式拟合的方法
2019/07/03 Python
自学python用什么系统好
2020/06/23 Python
Selenium环境变量配置(火狐浏览器)及验证实现
2020/12/07 Python
css3选择器基本介绍
2014/12/15 HTML / CSS
个人收入证明范本
2014/01/12 职场文书
医学生个人求职信范文
2014/02/07 职场文书
工作会议主持词
2014/03/17 职场文书
汽车促销活动方案
2014/03/31 职场文书
小学运动会演讲稿
2014/08/25 职场文书
党性教育心得体会
2014/09/03 职场文书
生死抉择观后感
2015/06/09 职场文书
CentOS8.4安装Redis6.2.6的详细过程
2021/11/20 Redis
SpringCloud超详细讲解Feign声明式服务调用
2022/06/21 Java/Android