谈谈JavaScript类型系统之Math


Posted in Javascript onJanuary 06, 2016

开门必读

math和其他对象不同,Math对象是一个静态对象,而不是构造函数。实际上,Math只是一个由Javascript设置的对象命名空间,用于存储数学函数

属性

Math.E 自然对数的底数,即常量e的值(约等于2.718)
Math.PI 派的值(约等于3.14159)
console.log(Math.E);//2.718281828459045
console.log(Math.PI);//3.141592653589793
Math.LN2 2的自然对数(约等于0.693)
Math.LN10 10的自然对数(约等于2.302)
Math.LOG2E 以2为底e的对数(约等于1.414)
Math.LOG10E 以10为底e的对数(约等于0.434)
console.log(Math.LN2);//0.6931471805599453
console.log(Math.LN10);//2.302585092994046
console.log(Math.LOG2E);//1.4426950408889634
console.log(Math.LOG10E);//0.4342944819032518
Math.SQRT2 2的平方根(约等于1.414)
Math.SQRT1_2 1/2的平方根,即2的平方根的倒数(约等于0.707)
console.log(Math.SQRT2);//1.4142135623730951
console.log(Math.SQRT1_2);//0.7071067811865476

方法

这些方法都涉及到Number()隐式类型转换;若超出方法范围,将返回NaN

Math.min() 返回一组数字中的最小值
Math.max() 返回一组数字中的最大值
console.log(Math.min(1,2,3));//1
console.log(Math.max(1,2,3));//3
Math.ceil(num) 向上舍入为整数
Math.floor(num) 向下舍入为整数
Math.round(num) 四舍五入为整数
console.log(Math.ceil(12.6));//13
console.log(Math.floor(12.6));//12
console.log(Math.round(12.6));//13
Math.abs(num) 返回num的绝对值
Math.random() 返回大于等于0小于1的一个随机数
console.log(Math.abs(-10));//10
console.log(Math.random());//0.741887615993619
Math.exp(num) 返回Math.E的num次幂
Math.log(num) 返回num的自然对数
Math.sqrt(num) 返回num的平方根(x必须是大于等于0的数)
Math.pow(num,power) 返回num的power次幂
console.log(Math.exp(0));//1
console.log(Math.log(10));//2.302585092994046
console.log(Math.sqrt(100));//10
console.log(Math.pow(10,2));//100
Math.sin(x) 返回x的正弦值
Math.cos(x) 返回x的余弦值
Math.tan(x) 返回x的正切值
Math.asin(x) 返回x的反正弦值(x必须是-1到1之间的数)
Math.acos(x) 返回x的反余弦值(x必须是-1到1之间的数)
Math.atan(x) 返回x的反正切值
Math.atan2(y,x) 返回y/x的反正切值
console.log(Math.sin(30*Math.PI/180));//0.49999999999999994
console.log(Math.cos(60*Math.PI/180));//0.5000000000000001
console.log(Math.tan(45*Math.PI/180));//0.9999999999999999
console.log(Math.asin(1)*180/Math.PI);//90
console.log(Math.acos(1)*180/Math.PI);//0
console.log(Math.atan(1)*180/Math.PI);//45
console.log(Math.atan2(1,1)*180/Math.PI);//45

tips

[tips1]找到数组中的最大或最小值

var values = [1,2,3,4,5,6,7,8];
var max = Math.max.apply(Math,values);//8

[tips2]从某个整数范围内随机选择一个值

value = Math.floor(Math.random()*可能值的总数 + 第一个可能的值)

[tips3]通过最小值和最大值随机选择一个值

function selectFrom(lowerValue,upperValue){
var choices = upperValue - lowerValue + 1;
return Math.floor(Math.random()*choices + lowerValue);
}
var num = selectFrom(2,10);
console.log(num);

Math 对象方法

方法 描述
abs(x) 返回数的绝对值。
acos(x) 返回数的反余弦值。
asin(x) 返回数的反正弦值。
atan(x) 以介于 -PI/2 与 PI/2 弧度之间的数值来返回 x 的反正切值。
atan2(y,x) 返回从 x 轴到点 (x,y) 的角度(介于 -PI/2 与 PI/2 弧度之间)。
ceil(x) 对数进行上舍入。
cos(x) 返回数的余弦。
exp(x) 返回 e 的指数。
floor(x) 对数进行下舍入。
log(x) 返回数的自然对数(底为e)。
max(x,y) 返回 x 和 y 中的最高值。
min(x,y) 返回 x 和 y 中的最低值。
pow(x,y) 返回 x 的 y 次幂。
random() 返回 0 ~ 1 之间的随机数。
round(x) 把数四舍五入为最接近的整数。
sin(x) 返回数的正弦。
sqrt(x) 返回数的平方根。
tan(x) 返回角的正切。
toSource() 返回该对象的源代码。
valueOf() 返回 Math 对象的原始值。

Javascript 相关文章推荐
让innerText在firefox火狐和IE浏览器都能用的写法
May 14 Javascript
JavaScript高级程序设计 事件学习笔记
Sep 10 Javascript
一个页面放2段图片滚动代码出现冲突的问题如何解决
Dec 21 Javascript
Javascript中产生固定结果的函数优化技巧
Jan 16 Javascript
javascript实现日期按月份加减
May 15 Javascript
jQuery在线选座位插件seat-charts特效代码分享
Aug 27 Javascript
JavaScript高仿支付宝倒计时页面及代码实现
Oct 21 Javascript
codeMirror插件使用讲解
Jan 16 Javascript
JQuery判断正整数整理小结
Aug 21 jQuery
微信小程序间使用navigator跳转传值问题实例分析
Mar 27 Javascript
jquery更改元素属性attr()方法操作示例
May 22 jQuery
vue基于Teleport实现Modal组件
May 31 Vue.js
莱鸟介绍javascript onclick事件
Jan 06 #Javascript
莱鸟介绍window.print()方法
Jan 06 #Javascript
JavaScript实现点击按钮直接打印
Jan 06 #Javascript
javascript中加var和不加var的区别 你真的懂吗
Jan 06 #Javascript
JavaScript引用类型和基本类型详解
Jan 06 #Javascript
js模仿java的Map集合详解
Jan 06 #Javascript
JavaScript中iframe实现局部刷新的几种方法汇总
Jan 06 #Javascript
You might like
PHP手机号码归属地查询代码(API接口/mysql)
2012/09/04 PHP
php获取通过http协议post提交过来xml数据及解析xml
2012/12/16 PHP
php可变长参数处理函数详解
2017/02/22 PHP
thinkPHP5.0框架简单配置作用域的方法
2017/03/17 PHP
jquery自定义属性(类型/属性值)
2013/05/21 Javascript
jquery及原生js获取select下拉框选中的值示例
2013/10/25 Javascript
JS匀速运动演示示例代码
2013/11/26 Javascript
jquery实现更改表格行顺序示例
2014/04/30 Javascript
jquery操作checkbox示例分享
2014/07/21 Javascript
实例分析js和C#中使用正则表达式匹配a标签
2014/11/26 Javascript
Javascript中的arguments与重载介绍
2015/03/15 Javascript
jQuery scrollFix滚动定位插件
2015/04/01 Javascript
JavaScript实现清空(重置)文件类型INPUT元素值的方法
2016/11/17 Javascript
HTML的select控件美化
2017/03/27 Javascript
ES6正则的扩展实例详解
2017/04/25 Javascript
Node.JS文件系统解析实例详解
2017/05/15 Javascript
Vue使用json-server进行后端数据模拟功能
2018/04/17 Javascript
小程序实现分类页
2019/07/12 Javascript
JavaScript实现指定数量的并发限制的示例代码
2020/03/10 Javascript
vue 获取到数据但却渲染不到页面上的解决方法
2020/11/19 Vue.js
Python标准异常和异常处理详解
2015/02/02 Python
python连接MySQL数据库实例分析
2015/05/12 Python
用Python解决计数原理问题的方法
2016/08/04 Python
python获取list下标及其值的简单方法
2016/09/12 Python
详解Python的hasattr() getattr() setattr() 函数使用方法
2018/07/09 Python
python利用跳板机ssh远程连接redis的方法
2019/02/19 Python
Python简单处理坐标排序问题示例
2019/07/11 Python
python 实现return返回多个值
2019/11/19 Python
python 使用递归的方式实现语义图片分割功能
2020/07/16 Python
关于HTML5+ API plusready的兼容问题
2020/11/20 HTML / CSS
“型”走纽约上东区:Sam Edelman
2017/04/02 全球购物
大学生物业管理求职信
2013/10/24 职场文书
担保贷款承诺书
2015/04/30 职场文书
新生开学寄语大全
2015/05/28 职场文书
新员工入职感言范文!
2019/07/04 职场文书
Redis集群的关闭与重启操作
2021/07/07 Redis