谈谈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 相关文章推荐
javascript 的Document属性和方法集合
Jan 25 Javascript
javascript 获取页面的高度及滚动条的位置的代码
May 06 Javascript
超级24小时弹窗代码 24小时退出弹窗代码 100%弹窗代码(IE only)
Jun 11 Javascript
jquery下json数组的操作实现代码
Aug 09 Javascript
基于jquery ui的alert,confirm方案(支持换肤)
Apr 03 Javascript
jquery代码实现多选、不同分享功能
Jul 31 Javascript
jQuery实现带有动画效果的回到顶部和底部代码
Nov 04 Javascript
表单中单选框添加选项和移除选项
Jul 04 Javascript
jQuery插件FusionCharts实现的2D面积图效果示例【附demo源码下载】
Mar 06 Javascript
jQuery实现的点击标题文字切换字体效果示例【测试可用】
Apr 26 jQuery
简述vue状态管理模式之vuex
Aug 29 Javascript
jQuery实现的老虎机跑动效果示例
Dec 29 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文件操作之获取目录下文件与计算相对路径的方法
2016/01/08 PHP
Symfony控制层深入详解
2016/03/17 PHP
php安装扩展mysqli的实现步骤及报错解决办法
2017/09/23 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
php中如何执行linux命令详解
2018/11/06 PHP
jQuery判断密码强度实现思路及代码
2013/04/24 Javascript
js对文章内容进行分页示例代码
2014/03/05 Javascript
火狐下input焦点无法重复获取问题的解决方法
2014/06/16 Javascript
javascript发送短信验证码实现代码
2015/11/12 Javascript
基于jQuery实现仿51job城市选择功能实例代码
2016/03/02 Javascript
JS动态创建元素的两种方法
2016/04/20 Javascript
使用Promise解决多层异步调用的简单学习心得
2016/05/17 Javascript
浅析jQuery操作select控件的取值和设值
2016/12/07 Javascript
H5手机端多文件上传预览插件
2017/04/21 Javascript
js获取浏览器的各种属性
2017/04/27 Javascript
微信小程序之网络请求简单封装实例详解
2017/06/28 Javascript
微信小程序调用微信支付接口的实现方法
2019/04/29 Javascript
[02:15]2014DOTA2国际邀请赛 赛后退役选手回顾
2014/08/01 DOTA
跟老齐学Python之关于循环的小伎俩
2014/10/02 Python
python如何派生内置不可变类型并修改实例化行为
2018/03/21 Python
对Python闭包与延迟绑定的方法详解
2019/01/07 Python
使用python的pandas为你的股票绘制趋势图
2019/06/26 Python
解决Keras TensorFlow 混编中 trainable=False设置无效问题
2020/06/28 Python
HTML+CSS3模拟心的跳动实例代码
2017/09/05 HTML / CSS
韩国11街:11STREET
2018/03/27 全球购物
俄罗斯有趣和原创礼物网上商店:MagicMag
2019/08/01 全球购物
机械设计制造及其自动化专业求职信
2014/06/17 职场文书
工伤事故赔偿协议书(标准)
2014/09/29 职场文书
2014年员工工作总结范文
2014/11/18 职场文书
化验室岗位职责
2015/02/14 职场文书
让子弹飞观后感
2015/06/11 职场文书
师范生见习总结范文
2015/06/23 职场文书
mybatis调用sqlserver存储过程返回结果集的方法
2021/05/08 SQL Server
Win11快速关闭所有广告推荐
2022/04/19 数码科技
vue3.0 数字翻牌组件的使用方法详解
2022/04/20 Vue.js
win10如何更改appdata文件夹的默认位置?
2022/07/15 数码科技