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代码
Oct 09 Javascript
JS中简单的实现像C#中using功能(有源码下载)
Jan 09 Javascript
jquery弹出框的用法示例(一)
Aug 26 Javascript
js和php如何获取当前url的内容
Sep 22 Javascript
jQuery如何使用自动触发事件trigger
Nov 29 Javascript
jQuery中判断对象是否存在的方法汇总
Feb 24 Javascript
JS实现弹出居中的模式窗口示例
Jun 20 Javascript
总结AngularJS开发者最常犯的十个错误
Aug 31 Javascript
把多个JavaScript函数绑定到onload事件处理函数上的方法
Sep 04 Javascript
浅谈jquery页面初始化的4种方式
Nov 27 Javascript
Vue学习笔记进阶篇之过渡状态详解
Jul 14 Javascript
AngularJS实现自定义指令及指令配置项的方法
Nov 20 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
Win7环境下Apache连接MySQL提示连接已重置的解决办法
2017/05/09 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
jQuery使用手册之一
2007/03/24 Javascript
asp.net HttpHandler实现图片防盗链
2009/11/09 Javascript
再论Javascript下字符串连接的性能
2011/03/05 Javascript
JS和jquery获取各种屏幕的宽度和高度的代码
2013/08/02 Javascript
常用的JS验证和函数汇总
2014/12/23 Javascript
用js编写的简单的计算器代码程序
2015/08/04 Javascript
jQuery toggle 代替方法
2016/03/22 Javascript
JQuery EasyUI Layout 在from布局自适应窗口大小的实现方法
2016/05/28 Javascript
使用json来定义函数,在里面可以定义多个函数的实现方法
2016/10/28 Javascript
Vue.js展示AJAX数据简单示例讲解
2017/03/29 Javascript
详解JS中统计函数执行次数与执行时间
2018/09/04 Javascript
小程序实现列表删除功能
2018/10/30 Javascript
浅谈Vue SSR中的Bundle的具有使用
2019/11/21 Javascript
微信小程序动态添加和删除组件的现实
2020/02/28 Javascript
js实现简单放大镜效果
2020/03/07 Javascript
Vue 集成 PDF.js 实现 PDF 预览和添加水印的步骤
2021/01/22 Vue.js
python清除字符串里非数字字符的方法
2015/07/02 Python
使用Python写个小监控
2016/01/27 Python
matplotlib简介,安装和简单实例代码
2017/12/26 Python
Python获取系统所有进程PID及进程名称的方法示例
2018/05/24 Python
python中将\\uxxxx转换为Unicode字符串的方法
2018/09/06 Python
详解用pyecharts Geo实现动态数据热力图城市找不到问题解决
2019/06/26 Python
Python 中如何使用 virtualenv 管理虚拟环境
2021/01/21 Python
摩托车和ATV零件、配件和服装的首选在线零售商:MotoSport
2017/12/22 全球购物
Lookfantastic澳大利亚官网:英国知名美妆购物网站
2021/01/07 全球购物
请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1
2015/07/16 面试题
大学自主招生推荐信
2014/05/10 职场文书
求职信范文大全
2014/05/26 职场文书
2015年母亲节活动策划方案
2015/05/04 职场文书
Spring Boot mybatis-config 和 log4j 输出sql 日志的方式
2021/07/26 Java/Android
企业开发CSS命名BEM代码规范实践
2022/02/12 HTML / CSS
世界十大评分最高的动漫,CLANNAD上榜,第八赚足人们眼泪
2022/03/18 日漫
从零开始在Centos7上部署SpringBoot项目
2022/04/07 Servers
vue-cli3.x配置全局的scss的时候报错问题及解决
2022/04/30 Vue.js