JavaScript数据类型 Math对象详解
前言
javascript使用算术运算符实现基本的算术运算,如果要实现更加复杂的算术运算,需要通过Math对象定义的常量和函数来实现。和其他对象不同,Math只是一个静态对象,并没有Math()构造函数。实际上,Math只是一个由javascript设置的对象命名空间,用于存储数学常量和函数。
new Math();//Uncaught TypeError: Math is not a constructor
常量
Math对象一共有8个常量,主要包括对数、派值和平方根三类
【对数】
Math.E 自然对数的底数,即常量e的值(约等于2.71828)
Math.LN2 2的自然对数(约等于0.693)
Math.LN10 10的自然对数(约等于2.303)
Math.LOG2E 以2为底e的对数(约等于1.443)
Math.LOG10E 以10为底e的对数(约等于0.434)
console.log(Math.E);//2.718281828459045
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.PI 派的值(约等于3.14)
console.log(Math.PI);//3.141592653589793
【平方根】
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
函数
Math对象一共有18个静态函数,主要包括最值、舍入、随机数、绝对值、三角函数及乘方开方6类
[注意]这些函数都涉及到Number()隐式类型转换。若超出范围,将返回NaN
最值
Math对象的min()和max()方法用于确定一组数值中的最小和最大值,这两个方法都可以接收任意个数值参数
【Math.max()】
返回参数中最大值。如果没有参数则返回-Infinity。如果任意一个参数是NaN或不可转换为数字,则返回NaN
【Math.min()】
返回参数中最小值。如果没有参数则返回Infinity。如果任意一个参数是NaN或不可转换为数字,则返回NaN
console.log(Math.min(1,2,3));//1
console.log(Math.max(1,2,3));//3
console.log(Math.min());//Infinity
console.log(Math.max());//-Infinity
console.log(Math.min(1,2,'3px'));//NaN
console.log(Math.max(1,2,'3px'));//NaN
【tips】找到数组中的最大或最小值
var values = [1,2,3,4,5,6,7,8];
var maxValue = Math.max.apply(Math,values);//8
var minValue = Math.min.apply(Math,values);//1
当我们在一个表单中需要一个合法的月份值时,可以使用下列代码
Math.min(Math.max(1,input),12);
舍入
Math对象一共有三种小数舍入为整数的方法,它们是:Math.ceil()、Math.floor()和Math.round()
【Math.ceil()】
执行向上取整运算,也就是说,它返回大于等于函数参数的最接近的整数
[注意]Math.ceil()不会将负数变成绝对值更大的负数,而是将它们向0的方向取整
【Math.floor() 】
执行向下取整运算,也就是说,它返回小于等于函数参数的最接近的整数
[注意]Math.floor()对负数也向下取整,即数字将更小
【Math.round()】
执行四舍五入取整运算
[注意]Math.round(x) + Math.round(-x) == 0;//true,当x为数字时
console.log(Math.ceil(12.6));//13
console.log(Math.floor(12.6));//12
console.log(Math.round(12.6));//13
console.log(Math.ceil(-12.6));//-12
console.log(Math.floor(-12.6));//-13
console.log(Math.round(-12.6));//-13
随机数
【Math.random()】
该方法返回大于等于0小于1的一个随机数
console.log(Math.random());//0.590752829178167
套用下面的公式可以利用Math.random()从某个整数范围内随机选择一个值
值 = Math.floor(Math.random() * 可能值的总数 + 第一个可能的值)
//返回一个1-10之间的整数值
var num = Math.floor(Math.random() * 10 + 1)
//从数组中随机取出一项
var colors = [1,2,3,4,5,6];
var color = colors[Math.floor(Math.random()*colors.length)];
绝对值
【Math.abs()】
该方法返回任意数值的绝对值
console.log(Math.abs(-1));//1
console.log(Math.abs('1px'));//NaN
console.log(Math.abs(1,2,3));//1
三角函数
Math对象共有7个涉及到三角函数的函数,分别是正弦、余弦、正切、反正弦、反余弦、反正切及y/x的反正切值
【Math.sin(x)】
返回x的正弦值,返回值介于-1到1之间
【Math.cos(x)】
返回x的余弦值,返回值介于-1到1之间
【Math.tan(x)】
返回x的正切值
[注意]x是一个以弧度制度量的角度,如果想将角度制转为弧度制,可以将角度制的值乘以0.017(2派/360)
【Math.asin(x)】
返回x的反正弦值,返回值介于-派/2到派/2弧度之间(x必须是-1到1之间的数)
【Math.acos(x)】
返回x的反余弦值,返回值介于0到派弧度之间(x必须是-1到1之间的数)
【Math.atan(x)】
返回x的反正切值,返回值介于-派/2到派/2弧度之间
【Math.atan2(y,x)】
返回y/x的反正切值,返回值介于-派到派可以将y看做一个点的y坐标,x看做点的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
乘方开方
Math对象涉及到乘方开方的函数共有4个
【Math.exp(num)】
返回Math.E的num次幂
console.log(Math.exp(0));//1
console.log(Math.exp(1));//2.718281828459045
【Math.log(num)】
返回num的自然对数,logenum(num必须是大于等于0的数)
log10x = 1og10e * logex
log2x = log2e * logex
function log10(x){
return Math.LOG10E * Math.log(x);
}
function log2(x){
return Math.LOG2E * Math.log(X);
}
console.log(Math.log(1));//0
console.log(Math.log(Math.E));//1
【Math.sqrt(num)】
返回num的平方根(x必须是大于等于0的数)
console.log(Math.sqrt(100));//10
console.log(Math.sqrt(1));//1
【Math.pow(num,power)】
返回num的power次幂
console.log(Math.pow(10,2));//100
console.log(Math.pow(100,1/2));//10
JavaScript数据类型 Math对象详解的更多相关文章
- (转)javascript中event对象详解
原文:http://jiajiale.iteye.com/blog/195906 javascript中event对象详解 博客分类: javaScript JavaScriptCS ...
- 原生JS:Math对象详解
Math对象 本文参考MDN做的详细整理,方便大家参考MDN Math 也是一个内置对象, 为数学常量和数学函数提供了属性和方法,而不是一个函数对象. 与其它全局对象不同的是, Math 不是一个构造 ...
- JavaScript中数组对象详解
Array对象即数组对象用于在单个变量中存储多个值,JS的数组是弱类型的,所以允许数组中含有不同类型的元素,数组元素甚至可以是对象或者其他数组. 创建数组的语法 1.Array构造器 1.var li ...
- Javascript学习之Math对象详解
1.定义 Math 是一个内置对象, 为数学常量和数学函数提供了属性和方法. Math 不是一个函数对象 Math 不是一个构造器. Math 的所有属性和方法都是静态的 2.属性 Math.E ...
- 【好文收藏】javascript中event对象详解
event代表事件的状态,例如触发event对象的元素.鼠标的位置及状态.按下的键等等. event对象只在事件发生的过程中才有效. event的某些属性只对特定的事件有意义.比如,fromEleme ...
- js对象详解(JavaScript对象深度剖析,深度理解js对象)
js对象详解(JavaScript对象深度剖析,深度理解js对象) 这算是酝酿很久的一篇文章了. JavaScript作为一个基于对象(没有类的概念)的语言,从入门到精通到放弃一直会被对象这个问题围绕 ...
- JavaScript进阶知识点——函数和对象详解
JavaScript进阶知识点--函数和对象详解 我们在上期内容中学习了JavaScript的基本知识点,今天让我们更加深入地了解JavaScript JavaScript函数 JavaScript函 ...
- Javascript中prototype属性详解 (存)
Javascript中prototype属性详解 在典型的面向对象的语言中,如java,都存在类(class)的概念,类就是对象的模板,对象就是类的实例.但是在Javascript语言体系中,是不 ...
- JavaScript正则表达式详解(二)JavaScript中正则表达式函数详解
二.JavaScript中正则表达式函数详解(exec, test, match, replace, search, split) 1.使用正则表达式的方法去匹配查找字符串 1.1. exec方法详解 ...
随机推荐
- Windows -- 从注册表删除IE浏览器加载项
Windows -- 从注册表删除IE浏览器加载项 1. 一部分加载项从注册表以下位置直接删除 2. 一部分扩展项从注册表以下位置直接删除
- android等待对话框
等待对话框,这里有两种方式来实现: ProgressDialog方式 progressDialog初始化 private void initProgressDialog() { progressDia ...
- 一起刷LeetCode
题目列表: 题目 解答 26. 删除排序数组中的重复项 https://www.cnblogs.com/powercai/p/10791735.html 25. k个一组翻转链表 https://ww ...
- CentOS7.x编译安装zabbix4.0
编译安装zabbix Zabbix简介 Zabbix 是一个企业级的分布式开源监控方案. Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件.Zabbix使用灵活的通知机制,允许用户 ...
- Python学习案例之人脸检测识别
前言 随着科技的发展,人脸识别技术在许多领域得到的非常广泛的应用,手机支付.银行身份验证.手机人脸解锁等等. 识别 废话少说,这里我们使用 opencv 中自带了 haar人脸特征分类器,利用训练好的 ...
- 程序员如何避免996、icu?欢迎来讨论一下。
最近996icu火了,我以前就被996害了.现在还没缓过来,可能是自己体质比较弱吧. 以前的事就不说了,说说现在的想法吧.那么程序员如何才能避免996icu呢? 有两个基本因素: 1. 实现一个功能, ...
- 随心测试_数据库_002 <数据库系统组成>
软测工程师:作为综合运用多学科知识,保障软件质量的重要岗位.需要我们学以致用,在工作中不断学习提升.以下:软测人员必备_数据库核心技能学习点,供大家学习参考. 数据库系统组成_必备 1. 简介:数据库 ...
- dos命令的使用
echo 百度欢迎您 >d:\1.txt F7查看执行过的命令 直接进入 D盘 d: 创建目录 md fox 在fox目录下创建子目录user md fox\user\hello1 进入到use ...
- Python----简单线性回归
简单线性回归 1.研究一个自变量(X)和一个因变量(y)的关系 简单线性回归模型定义:y=β0+β1x+ε 简单线性回归方程:E(y)=β0+β1x 其中: β0为回归线的截距 β1为回归线的斜率 ...
- 探索PowerShell 【十三】WMI对象
原文:探索PowerShell ][十三]WMI对象 我记得在xp时代,经常使用的工具有一个叫做WMI Administrative Tools,是微软官方提供的用来查看.编辑WMI对象的,只是现在好 ...