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去除空格的12种实用方法
Nov 08 Javascript
jQuery实现输入框下拉列表树插件特效代码分享
Aug 27 Javascript
JS实现环形进度条(从0到100%)效果
Jul 05 Javascript
深入浅析javascript中的作用域(推荐)
Jul 19 Javascript
Vue.js常用指令汇总(v-if、v-for等)
Nov 03 Javascript
Angular动态添加、删除输入框并计算值实例代码
Mar 29 Javascript
微信小程序点击控件修改样式实例详解
Jul 07 Javascript
Vue 动态设置路由参数的案例分析
Apr 24 Javascript
layui 设置table 行的高度方法
Aug 17 Javascript
JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解
Dec 12 Javascript
js+css3实现炫酷时钟
Aug 18 Javascript
如何利用vue实现波谱拟合详解
Nov 05 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扩展ZF――Validate扩展
2008/01/10 PHP
PHP 一个页面执行时间类代码
2010/03/05 PHP
PHP 删除一个目录及目录下的所有文件的函数代码
2010/05/26 PHP
php中定义网站根目录的常用方法
2010/08/08 PHP
关于PHP实现异步操作的研究
2013/02/03 PHP
php多层数组与对象的转换实例代码
2013/08/05 PHP
php生成随机数的三种方法
2014/09/10 PHP
php上传文件问题汇总
2015/01/30 PHP
轻松掌握php设计模式之访问者模式
2016/09/23 PHP
用PHP的反射实现委托模式的讲解
2019/03/22 PHP
php将字符串转换为数组实例讲解
2020/05/05 PHP
javascript 控制 html元素 显示/隐藏实现代码
2009/09/01 Javascript
sails框架的学习指南
2014/12/22 Javascript
js实现图片加载淡入淡出效果
2017/04/07 Javascript
深入理解react-router@4.0 使用和源码解析
2017/05/23 Javascript
vue中如何实现变量和字符串拼接
2017/06/19 Javascript
js学习总结_选项卡封装(实例讲解)
2017/07/13 Javascript
基于vue中css预加载使用sass的配置方式详解
2018/03/13 Javascript
浅谈layui里的上传控件问题
2019/09/26 Javascript
JavaScript中的this基本问题实例小结
2020/03/09 Javascript
vue cli4下环境变量和模式示例详解
2020/04/09 Javascript
python基于mysql实现的简单队列以及跨进程锁实例详解
2014/07/07 Python
Python、Javascript中的闭包比较
2015/02/04 Python
Django查询数据库的性能优化示例代码
2017/09/24 Python
Python pycharm 同时加载多个项目的方法
2019/01/17 Python
Python3.4学习笔记之类型判断,异常处理,终止程序操作小结
2019/03/01 Python
Herschel Supply Co.美国:背包、手提袋及配件
2020/11/24 全球购物
在C语言中"指针和数组等价"到底是什么意思?
2014/03/24 面试题
研究生求职推荐信范文
2013/11/30 职场文书
关于期中考试的反思
2014/02/02 职场文书
市场营销个人求职信范文
2014/02/02 职场文书
爱心捐款倡议书
2014/04/14 职场文书
2015年十一国庆节演讲稿
2015/03/20 职场文书
自主招生自荐信格式范文
2015/03/25 职场文书
使用Vue3+Vant组件实现App搜索历史记录功能(示例代码)
2021/06/09 Vue.js
Elasticsearch 索引操作和增删改查
2022/04/19 Python