谈谈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 div拖动效果示例代码
Dec 08 Javascript
node.js中的console用法总结
Dec 15 Javascript
JavaScript通过function定义对象并给对象添加toString()方法实例分析
Mar 23 Javascript
TypeOf这些知识点你了解吗
Feb 21 Javascript
使用JS正则表达式 替换括号,尖括号等
Nov 29 Javascript
详解Angular.js中$http拦截器的介绍及使用
Jul 04 Javascript
p5.js实现故宫橘猫赏秋图动画
Oct 23 Javascript
使用 Angular RouteReuseStrategy 缓存(路由)组件的实例代码
Nov 01 Javascript
小程序跳转到的H5页面再跳转回跳小程序的方法
Mar 06 Javascript
关于AngularJS中几种Providers的区别总结
May 17 Javascript
jQuery使用jsonp实现百度搜索的示例代码
Jul 08 jQuery
详解JS数组方法
Nov 20 Javascript
莱鸟介绍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 8小时时间差的解决方法小结
2009/12/22 PHP
PHP has encountered an Access Violation 错误的解决方法
2010/01/17 PHP
php截取utf-8中文字符串乱码的解决方法
2010/03/29 PHP
浅谈web上存漏洞及原理分析、防范方法(文件名检测漏洞)
2013/06/29 PHP
使用php检测用户当前使用的浏览器是否为IE浏览器
2013/12/03 PHP
浅谈PHP中JSON数据操作
2015/07/01 PHP
PHP读取文件的常见几种方法
2016/11/03 PHP
QQ邮箱的一个文本编辑器代码
2007/03/14 Javascript
Jquery创建一个层当鼠标移动到层上面不消失效果
2013/12/12 Javascript
JQuery实现级联下拉框效果实例讲解
2015/09/17 Javascript
轻松掌握JavaScript单例模式
2016/08/25 Javascript
React-Native左右联动List的示例代码
2017/09/21 Javascript
JS中数组与对象的遍历方法实例小结
2018/08/14 Javascript
使用nvm和nrm优化node.js工作流的方法
2019/01/17 Javascript
VUE实现密码验证与提示功能
2019/10/18 Javascript
探索node之事件循环的实现
2020/10/30 Javascript
详解详解Python中writelines()方法的使用
2015/05/25 Python
python自动截取需要区域,进行图像识别的方法
2018/05/17 Python
浅析Python 3 字符串中的 STR 和 Bytes 有什么区别
2018/10/14 Python
在windows下使用python进行串口通讯的方法
2019/07/02 Python
python opencv调用笔记本摄像头
2019/08/28 Python
CSS3实现类似翻书效果的过渡动画的示例代码
2019/09/06 HTML / CSS
修复iPhone的safari浏览器上submit按钮圆角bug
2012/12/24 HTML / CSS
HTML5所有标签汇总及标签意义解释
2015/03/12 HTML / CSS
打造经典复古风格的品牌:Alice + Olivia(爱丽丝+奥利维亚)
2016/09/07 全球购物
Hunkemöller西班牙:欧洲最大的内衣连锁店
2018/08/15 全球购物
教学实验楼管理制度
2014/02/01 职场文书
保险专业求职信
2014/07/07 职场文书
委托证明书
2014/09/17 职场文书
学校党的群众路线教育实践活动整改措施
2014/10/25 职场文书
党员学习新党章思想汇报
2014/10/25 职场文书
实习报告范文
2019/07/30 职场文书
导游词之河北野三坡
2019/12/11 职场文书
fastdfs+nginx集群搭建的实现
2021/03/31 Servers
Python干货实战之八音符酱小游戏全过程详解
2021/10/24 Python
JavaScript中MutationObServer监听DOM元素详情
2021/11/27 Javascript