谈谈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和注册表脚本实现右键收藏Web页选中文本
Jan 28 Javascript
JavaScript 检测浏览器和操作系统的脚本
Dec 26 Javascript
JSON语法五大要素图文介绍
Dec 04 Javascript
javascript定义变量时加var与不加var的区别
Dec 22 Javascript
js实现上传图片预览的方法
Feb 09 Javascript
DEDECMS如何为文章添加HOT NEW标志图片
Aug 14 Javascript
jquery实现倒计时效果
Dec 14 Javascript
Node.js测试中的Mock文件系统详解
Nov 21 Javascript
bootstrapValidator.min.js表单验证插件
Feb 09 Javascript
template.js前端模板引擎使用详解
Oct 10 Javascript
微信小程序实现自定义modal弹窗封装的方法
Jun 15 Javascript
vue实现分页栏效果
Jun 28 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
打造计数器DIY三步曲(上)
2006/10/09 PHP
php array_search() 函数使用
2010/04/13 PHP
PHP获取网页标题的3种实现方法代码实例
2014/04/11 PHP
浅析ThinkPHP的模板输出功能
2014/07/01 PHP
PHP+MYSQL实现用户的增删改查
2015/03/24 PHP
php提高网站效率的技巧
2015/09/29 PHP
PHP Filter过滤器全面解析
2016/08/09 PHP
php使用PDO从数据库表中读取数据的实现方法(必看)
2017/06/02 PHP
基于PHP实现用户在线状态检测
2020/11/10 PHP
用表格输出1-1000之间的数字实现代码(附特效)
2013/04/21 Javascript
JavaScript获取表单enctype属性的方法
2015/04/02 Javascript
jQuery简单倒计时效果完整示例
2016/09/20 Javascript
原生js仿jquery一些常用方法(必看篇)
2016/09/20 Javascript
Javascript中字符串和数字的操作方法整理
2017/01/22 Javascript
前端开发不得不知的10个最佳ES6特性
2017/08/30 Javascript
小程序实现左右来回滚动字幕效果
2018/12/28 Javascript
微信小程序rich-text富文本用法实例分析
2019/05/20 Javascript
JavaScript基于面向对象实现的无缝滚动轮播示例
2020/01/17 Javascript
JavaScript实现与web通信的方法详解
2020/08/07 Javascript
python socket 超时设置 errno 10054
2014/07/01 Python
python数据预处理之将类别数据转换为数值的方法
2017/07/05 Python
TensorFlow模型保存/载入的两种方法
2018/03/08 Python
关于pytorch多GPU训练实例与性能对比分析
2019/08/19 Python
face++与python实现人脸识别签到(考勤)功能
2019/08/28 Python
python小程序之4名牌手洗牌发牌问题解析
2020/05/15 Python
关于Python3爬虫利器Appium的安装步骤
2020/07/29 Python
Python描述数据结构学习之哈夫曼树篇
2020/09/07 Python
利用HTML5+CSS3实现3D转换效果实例详解
2017/05/02 HTML / CSS
Vrbo英国:预订度假屋
2020/08/19 全球购物
新春联欢会主持词
2014/03/24 职场文书
环保倡议书100字
2014/05/15 职场文书
2014年教研员工作总结
2014/12/23 职场文书
开工典礼致辞
2015/07/29 职场文书
大学生团支书竞选稿
2015/11/21 职场文书
「睡美人」爱洛公主粘土人开订
2022/03/22 日漫
springboot集成redis存对象乱码的问题及解决
2022/06/16 Java/Android