谈谈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 调试器简介
Feb 21 Javascript
javascript qq右下角滑出窗口 sheyMsg
Mar 21 Javascript
Javascript实现多彩雪花从天降散落效果的方法
Feb 02 Javascript
JavaScript中的闭包介绍
Mar 15 Javascript
javascript判断数组内是否重复的方法
Apr 21 Javascript
js实现头像图片切割缩放及无刷新上传图片的方法
Jul 17 Javascript
JS实现可编辑的后台管理菜单功能【附demo源码下载】
Sep 13 Javascript
Node.js 使用命令行工具检查更新
Jun 08 Javascript
基于vue配置axios的方法步骤
Nov 09 Javascript
解决vue单页路由跳转后scrollTop的问题
Sep 03 Javascript
JavaScript时间日期操作实例小结【5个示例】
Dec 22 Javascript
如何在Node和浏览器控制台中打印彩色文字
Jan 09 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中设置一个严格30分钟过期Session面试题的4种答案
2014/07/30 PHP
PHP中使用虚代理实现延迟加载技术
2014/11/05 PHP
判断是否输入完毕再激活提交按钮
2006/06/26 Javascript
JavaScript操纵窗口的方法小结
2013/06/28 Javascript
浏览器窗口加载和大小改变事件示例
2014/02/27 Javascript
jQuery中select与datalist制作下拉菜单时的区别浅析
2016/12/30 Javascript
深入理解ES6 Promise 扩展always方法
2017/09/26 Javascript
Vuex 在Vue 组件中获得Vuex 状态state的方法
2018/08/27 Javascript
微信小程序 生成携带参数的二维码
2019/10/23 Javascript
Vue proxyTable配置多个接口地址,解决跨域的问题
2020/09/11 Javascript
vue v-on:click传递动态参数的步骤
2020/09/11 Javascript
antd日期选择器禁止选择当天之前的时间操作
2020/10/29 Javascript
推荐下python/ironpython:从入门到精通
2007/10/02 Python
用python与文件进行交互的方法
2018/03/01 Python
python爬虫_实现校园网自动重连脚本的教程
2018/04/22 Python
python pygame实现2048游戏
2018/11/20 Python
python利用小波分析进行特征提取的实例
2019/01/09 Python
pyqt5之将textBrowser的内容写入txt文档的方法
2019/06/21 Python
Django接收post前端返回的json格式数据代码实现
2019/07/31 Python
python并发爬虫实用工具tomorrow实用解析
2019/09/25 Python
使用python实现飞机大战游戏
2020/03/23 Python
python实现二分类和多分类的ROC曲线教程
2020/06/15 Python
css实例教程 一款纯css3实现的超炫动画背画特效
2014/11/05 HTML / CSS
面试求职的个人自我评价
2013/11/16 职场文书
公司员工检讨书
2014/02/08 职场文书
篝火晚会主持词
2014/03/25 职场文书
房屋转让协议书
2014/04/11 职场文书
《沉香救母》教学反思
2014/04/19 职场文书
药剂专业毕业生求职信
2014/06/24 职场文书
标准版离职证明书
2014/09/12 职场文书
2014领导班子正风肃纪思想汇报
2014/09/18 职场文书
报名委托书
2015/01/29 职场文书
2015年环境整治工作总结
2015/05/22 职场文书
python3 删除所有自定义变量的操作
2021/04/08 Python
Vue的列表之渲染,排序,过滤详解
2022/02/24 Vue.js
六个好看实用的 HTML + CSS 后台登录入口页面
2022/04/28 HTML / CSS