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 相关文章推荐
一个加载js文件的小脚本
Jun 28 Javascript
事件委托与阻止冒泡阻止其父元素事件触发
Sep 02 Javascript
JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法
Dec 20 Javascript
JavaScript设计模式学习之“类式继承”
Mar 12 Javascript
jQuery+jsp下拉框联动获取本地数据的方法(附源码)
Dec 03 Javascript
原生js实现图片层叠轮播切换效果
Feb 02 Javascript
Node.js+Express+MySql实现用户登录注册功能
Jul 10 Javascript
详解JS中的柯里化(currying)
Aug 17 Javascript
深入理解Vue.js源码之事件机制
Sep 27 Javascript
vue如何解决循环引用组件报错的问题
Sep 22 Javascript
jQuery实现侧边栏隐藏与显示的方法详解
Dec 22 jQuery
Vue父组件监听子组件生命周期
Sep 03 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连接Oracle for NT 远程数据库
2006/10/09 PHP
PDO防注入原理分析以及注意事项
2015/02/25 PHP
php+ajax实现异步上传文件或图片功能
2017/07/18 PHP
PHP实现的curl批量请求操作示例
2018/06/06 PHP
PHP解密支付宝小程序的加密数据、手机号的示例代码
2021/02/26 PHP
Javascript 个人笔记(没有整理,很乱)
2007/07/07 Javascript
javascript 全角转换实现代码
2009/07/17 Javascript
juqery 学习之五 文档处理 包裹、替换、删除、复制
2011/02/11 Javascript
JavaScript Scoping and Hoisting 翻译
2012/07/03 Javascript
jQuery异步加载数据并添加事件示例
2014/08/24 Javascript
js读写json文件实例代码
2014/10/21 Javascript
微信小程序之页面拦截器的示例代码
2017/09/07 Javascript
利用Angular2 + Ionic3开发IOS应用实例教程
2018/01/15 Javascript
浅谈jquery fullpage 插件增加头部和版权的方法
2018/03/20 jQuery
vue2中使用less简易教程
2018/03/27 Javascript
Vue无限滑动周选择日期的组件的示例代码
2018/07/18 Javascript
vue-router 起步步骤详解
2019/03/26 Javascript
jQuery事件绑定和解绑、事件冒泡与阻止事件冒泡及弹出应用示例
2019/05/13 jQuery
uni-app自定义导航栏按钮|uniapp仿微信顶部导航条功能
2019/11/12 Javascript
jQuery单页面文字搜索插件jquery.fullsearch.js的使用方法
2020/02/04 jQuery
详解JS预解析原理
2020/06/16 Javascript
Python3.4编程实现简单抓取爬虫功能示例
2017/09/14 Python
Python使用wget实现下载网络文件功能示例
2018/05/31 Python
python3的UnicodeDecodeError解决方法
2019/12/20 Python
python实现密码强度校验
2020/03/18 Python
在线购买世界上最好的酒:BoozeBud
2018/06/07 全球购物
大学生毕业的自我鉴定
2013/11/13 职场文书
新品发布会主持词
2014/04/02 职场文书
超市仓管员岗位职责
2014/04/07 职场文书
单位活动策划方案
2014/08/17 职场文书
2014幼儿园中班工作总结
2014/11/10 职场文书
计划生育汇报材料
2014/12/26 职场文书
遗嘱范文
2015/08/07 职场文书
爱岗敬业事迹材料
2019/06/20 职场文书
小程序实现筛子抽奖
2021/05/26 Javascript
详解Laravel制作API接口
2021/05/31 PHP