谈谈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 相关文章推荐
Jquery 插件开发笔记整理
Jan 17 Javascript
使用Jquery获取带特殊符号的ID 标签的方法
Apr 30 Javascript
javascript中eval和with用法实例总结
Nov 30 Javascript
VueJs与ReactJS和AngularJS的异同点
Dec 12 Javascript
Vue2 SSR渲染根据不同页面修改 meta
Nov 20 Javascript
利用JQUERY实现多个AJAX请求等待的实例
Dec 14 jQuery
Angular 利用路由跳转到指定页面的指定位置方法
Aug 31 Javascript
JavaScript中Array方法你该知道的正确打开方法
Sep 11 Javascript
vue表单数据交互提交演示教程
Nov 13 Javascript
javascript单张多张图无缝滚动实例代码
May 10 Javascript
原生js生成图片验证码
Oct 11 Javascript
在vue项目中封装echarts的步骤
Dec 25 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
对盗链说再见...
2006/10/09 PHP
PHP 上传文件大小限制
2009/07/05 PHP
php中使用Akismet防止垃圾评论的代码
2011/06/10 PHP
基于simple_html_dom的使用小结
2013/07/01 PHP
PHP捕获Fatal error错误的方法
2014/06/11 PHP
常用PHP框架功能对照表
2014/10/23 PHP
PHP计算指定日期所在周的开始和结束日期的方法
2015/03/24 PHP
WordPress开发中短代码的实现及相关函数使用技巧
2016/01/05 PHP
Symfony核心类概述
2016/03/17 PHP
php禁用cookie后session设置方法分析
2016/10/19 PHP
PHP内存溢出优化代码详解
2021/02/26 PHP
jquery.jstree 增加节点的双击事件代码
2010/07/27 Javascript
理解JSON:3分钟课程
2011/10/28 Javascript
jquery插件jTimer(jquery定时器)使用方法
2013/12/23 Javascript
jquery结婚电子请柬特效源码分享
2015/08/21 Javascript
详解Node.js实现301、302重定向服务
2017/04/07 Javascript
JS Input里添加小图标的两种方法
2017/11/11 Javascript
9种方法优化jQuery代码详解
2020/02/04 jQuery
[05:46]DOTA2英雄梦之声_第18期_陈
2014/06/20 DOTA
在Python的Django框架中加载模版的方法
2015/07/16 Python
python中列表和元组的区别
2017/12/18 Python
基于python的多进程共享变量正确打开方式
2018/04/28 Python
使用Python的networkx绘制精美网络图教程
2019/11/21 Python
Python如何基于smtplib发不同格式的邮件
2019/12/30 Python
selenium与xpath之获取指定位置的元素的实现
2021/01/26 Python
浅谈html5 响应式布局
2014/12/24 HTML / CSS
HEMA法国:荷兰原创设计
2019/02/21 全球购物
应届大学生自荐信格式
2013/09/21 职场文书
银行自荐信范文
2013/10/07 职场文书
教师求职推荐信范文
2013/11/20 职场文书
委托书范本
2014/04/02 职场文书
施工协议书范本
2014/04/22 职场文书
2015年度党员自我评价范文
2015/03/03 职场文书
劳动保障个人工作总结
2015/03/04 职场文书
工商行政处罚决定书
2015/06/24 职场文书
欠条样本
2015/07/03 职场文书