谈谈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 相关文章推荐
js href的用法
May 13 Javascript
node.js中的path.isAbsolute方法使用说明
Dec 08 Javascript
jquery单击事件和双击事件冲突解决方案
Mar 02 Javascript
jQuery给div,Span, a ,button, radio 赋值与取值
Jun 24 Javascript
jquery表格datatables实例解析 直接加载和延迟加载
Aug 12 Javascript
JavaScript中removeChild 方法开发示例代码
Aug 15 Javascript
node.js调用Chrome浏览器打开链接地址的方法
May 17 Javascript
利用Javascript实现一套自定义事件机制
Dec 14 Javascript
js判断传入时间和当前时间大小实例(超简单)
Jan 11 Javascript
Vue中使用create-keyframe-animation与动画钩子完成复杂动画
Apr 09 Javascript
Vue 动态添加路由及生成菜单的方法示例
Jun 20 Javascript
jQuery实现本地存储
Dec 22 jQuery
莱鸟介绍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条基色色带
2006/10/09 PHP
PHP类与对象中的private访问控制的疑问
2012/11/01 PHP
PHP图片处理之使用imagecopy函数添加图片水印实例
2014/11/19 PHP
PHP重定向与伪静态区别
2017/02/19 PHP
JS获取IUSR_机器名和IWAM_机器名帐号的密码
2006/12/06 Javascript
用jquery来定位
2007/02/20 Javascript
jQuery开发者都需要知道的5个小技巧
2010/01/08 Javascript
给html超链接设置事件不使用href来完成跳
2014/04/20 Javascript
js冒泡、捕获事件及阻止冒泡方法详细总结
2014/05/08 Javascript
javascript学习笔记(五)原型和原型链详解
2014/10/08 Javascript
jQuery实现冻结表头的方法
2015/03/09 Javascript
封装好的javascript前端分页插件pagination
2016/01/04 Javascript
基于HTML模板和JSON数据的JavaScript交互(移动端)
2016/04/06 Javascript
使用jQuery Mobile框架开发移动端Web App的入门教程
2016/05/17 Javascript
详解微信小程序——自定义圆形进度条
2016/12/29 Javascript
jQuery实现鼠标悬停3d菜单展开动画效果
2017/01/19 Javascript
Node之简单的前后端交互(实例讲解)
2017/11/14 Javascript
JavaScript中join()、splice()、slice()和split()函数用法示例
2018/08/24 Javascript
vue配置nprogress实现页面顶部进度条
2019/09/21 Javascript
[39:07]LGD vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.21
2018/08/22 DOTA
[01:59]翻天覆地,因你而变,7.20版本地图更新速览
2018/11/24 DOTA
python定时检查某个进程是否已经关闭的方法
2015/05/20 Python
python 通过logging写入日志到文件和控制台的实例
2018/04/28 Python
python Popen 获取输出,等待运行完成示例
2019/12/30 Python
简单了解Django ORM常用字段类型及参数配置
2020/01/07 Python
pycharm 代码自动补全的实现方法(图文)
2020/09/18 Python
python利用线程实现多任务
2020/09/18 Python
python中numpy数组与list相互转换实例方法
2021/01/29 Python
h5实现获取用户地理定位的实例代码
2017/07/17 HTML / CSS
英国精品买手店:Browns Fashion
2016/09/29 全球购物
JSF界面控制层技术
2013/06/17 面试题
产品工艺师的岗位职责
2013/11/15 职场文书
幼儿园大班教育随笔
2015/08/14 职场文书
汉语拼音教学反思
2016/02/22 职场文书
go语言中fallthrough的用法说明
2021/05/06 Golang
详解flex:1什么意思
2022/07/23 HTML / CSS