谈谈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 相关文章推荐
[原创]图片分页查看
Aug 28 Javascript
JQuery 学习笔记 element属性控制
Jul 23 Javascript
js动态在form上插入enctype=multipart/form-data的问题
May 24 Javascript
jquery连缀语法如何实现
Nov 29 Javascript
javascript常用的正则表达式实例
May 15 Javascript
javascript检测两个数组是否相似
May 19 Javascript
jquery中添加属性和删除属性
Jun 03 Javascript
百度地图api如何使用
Aug 03 Javascript
Express URL跳转(重定向)的实现方法
Apr 07 Javascript
微信小程序实现换肤功能
Mar 14 Javascript
jQuery实现每日秒杀商品倒计时功能
Sep 06 jQuery
js实现简单放大镜效果
Mar 07 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 编写的 25个游戏脚本
2009/05/11 PHP
php class中public,private,protected的区别以及实例分析
2013/06/18 PHP
php递归函数三种实现方法及如何实现数字累加
2015/08/07 PHP
10个基于jQuery或JavaScript的WYSIWYG 编辑器整理
2010/05/06 Javascript
基于JQuery实现异步刷新的代码(转载)
2011/03/29 Javascript
Javascript 自适应高度的Tab选项卡
2011/04/05 Javascript
JS中实现replaceAll的方法(实例代码)
2013/11/12 Javascript
js解决select下拉选不中问题
2014/10/14 Javascript
JavaScript使用pop方法移除数组最后一个元素用法实例
2015/04/06 Javascript
全面解析JavaScript的Backbone.js框架中的Router路由
2016/05/05 Javascript
AngularJS删除路由中的#符号的方法
2016/09/20 Javascript
完美解决手机浏览器顶部下拉出现网页源或刷新的问题
2017/11/30 Javascript
微信小程序实现动态改变view标签宽度和高度的方法【附demo源码下载】
2017/12/05 Javascript
vue组件中的数据传递方法
2018/05/14 Javascript
jQuery简单实现根据日期计算星期几的方法
2019/01/09 jQuery
详解JavaScript原型与原型链
2020/11/16 Javascript
python获取beautifulphoto随机某图片代码实例
2013/12/18 Python
Python调用C/C++动态链接库的方法详解
2014/07/22 Python
举例讲解Python中装饰器的用法
2015/04/27 Python
Python实现简单遗传算法(SGA)
2018/01/29 Python
python 通过字符串调用对象属性或方法的实例讲解
2018/04/21 Python
Python3.遍历某文件夹提取特定文件名的实例
2018/04/26 Python
使用NumPy和pandas对CSV文件进行写操作的实例
2018/06/14 Python
如何优雅地改进Django中的模板碎片缓存详解
2018/07/04 Python
python主线程与子线程的结束顺序实例解析
2019/12/17 Python
PyTorch加载自己的数据集实例详解
2020/03/18 Python
Python中实现输入一个整数的案例
2020/05/03 Python
CSS3图片旋转特效(360/60/-360度)
2013/10/10 HTML / CSS
CSS实现半透明边框与多重边框的场景分析
2019/11/13 HTML / CSS
德国香水、化妆品和护理产品网上商店:Parfumdreams
2018/09/26 全球购物
慕尼黑山地运动、户外服装和体育用品专家:Sporthaus Schuster
2019/08/27 全球购物
会计应聘求职信范文
2013/12/17 职场文书
咖啡店的创业计划书,让你hold不住
2014/01/03 职场文书
教师个人自我鉴定
2014/02/08 职场文书
五一促销活动总结
2014/07/01 职场文书
钳工实训报告总结
2014/11/04 职场文书