1.比较最值类

1.1 max() 方法,比较一组数值中的最大值,返回最大值。

var maxnum = Math.max(12,6,43,58,70);
console.log(maxnum); //"70"

1.2 min() 方法,比较一组数值中的最小值,返回最小值。

var minnum = Math.min(12,6,43,58,70);
console.log(minnum); //"6"

这两个方法接收0或者多个参数。

如果不传入参数,max() 返回 -Infinity;min() 返回 Infinity。

如果传入的参数,不能转化为数值,这两个方法都返回 NaN。

console.log(Math.max());    // -Infinity
console.log(Math.min()); // Infinity
console.log(Math.max(1,6,"hello")); // NaN

2.数值舍入类

2.1 ceil() 方法,将数值向上舍入为最接近的整数,返回舍入后的新数值。

console.log(Math.ceil(6.1));    //"7"
console.log(Math.ceil(6.5)); //"7"
console.log(Math.ceil(6.9)); //"7"

2.2 floor() 方法,将数值向下舍入为最接近的整数,返回舍入后的新数值。

console.log(Math.floor(6.1));    //"6"
console.log(Math.floor(6.5)); //"6"
console.log(Math.floor(6.9)); //"6"

2.3 round() 方法,将数值四舍五入为最接近的整数,返回舍入后的新数值。

console.log(Math.round(6.1));    //"6"
console.log(Math.round(6.5)); //"7"
console.log(Math.round(6.9)); //"7"

3.产生随机数方法

random() 方法,返回一个大于等于0小于1的随机数,返回的随机数是小数值。

随机数范围用区间表示即为[0,1),包含0不包含1。

有一个公式:

返回的值 = Math.floor(Math.random() * 可能值的总数 + 第一个可能的值)

套用这个公式可以返回某个整数范围内的随机数。

上面的公式中调用了 floor() 方法,因为 random() 返回的是一个小数,而我们要返回的是整数,所以要对返回值进行舍入操作。

  • 比如要随机产生1到10之间的整数,[1,10],包含1和10,可以套用公式编写下面的代码:
var num = Math.floor(Math.random() * 10 + 1);

[1,10] 之间包含10个数,因此可能值的总数是10,则 random()*10,即产生 [0,10) 之间的随机数;

第一个可能的值是1,则 random()*10+1,即产生 [1,11) 之间的随机数;

此时它产生的最小整数是1了,但最大整数并不是10,它会产生10.xxxxxxxxxx 这样的小数,于是用 floor() 将其向下舍入,这样它产生的最大整数就是10了。

  • 如果要随机产生 [5,10] 之间的整数,那么套用公式即可编写这样的代码:
var num = Math.floor(Math.random() * 6 + 5);

[5,10] 之间包含6个数,所以可能值的总数是6,则 random()*6;第一个可能的值是5,所以 random()*6+5;最后用 floor() 将其向下舍入。

其他情况可以自己举例推算。

  • 其实,可以通过一个函数来计算可能值的总数和第一个可能的值:
function selectFrom(lowerValue,upperValue) {
var choices = upperValue - lowerValue + 1;
return Math.floor(Math.random() * choices + lowerValue);
}

函数 selectFrom() 接受两个参数,即应该返回的最小值 lowerValue 和最大值 UpperValue。用最大值减去最小值再加上1等于可能值的总数,最小值 lowerValue 就是第一个可能的值,这样可以套用前面的公式。

使用这个函数随机产生某个范围内的整数更灵活,我们只需要调用函数,传入参数即可。

比如要随机产生 [10,20] 之间的整数,传入参数10,20即可:

function selectFrom(lowerValue,upperValue) {
var choices = upperValue - lowerValue + 1;
return Math.floor(Math.random() * choices + lowerValue);
}
var num = selectFrom(10,20);
console.log(num); //随机产生一个介于10和20之间的整数

利用函数 selectFrom() 可以从数组中随机取出一项。比如从彩虹的色彩中随机取出一种颜色,代码如下:

function selectFrom(lowerValue,upperValue) {
var choices = upperValue - lowerValue + 1;
return Math.floor(Math.random() * choices + lowerValue);
}
var colors = ["红","橙","黄","绿","青","蓝","紫"];
var color = colors[selectFrom(0, colors.length-1)];
console.log(color); //随机弹出一种颜色名称

数组 colors 共有7项,项目的下标号从0到6(即 colors.length-1),要随机取出一种颜色,也就是要随机产生一个 [0,6] 之间的整数,把这个随机产生整数赋给 colors [i] 中的 i,也可以多写一步,更好理解:

function selectFrom(lowerValue,upperValue) {
var choices = upperValue - lowerValue + 1;
return Math.floor(Math.random() * choices + lowerValue);
}
var colors = ["红","橙","黄","绿","青","蓝","紫"];
var i = selectFrom(0, colors.length-1);
var color = colors[i];
console.log(color); //随机弹出一种颜色名称

4.其他计算方法

这些方法需要时可以查询文档

Math.abs(num) 返回 num 的绝对值
Math.exp(num)  返回 Math.E 的 num 次幂
Math.log(num)    返回 num 的自然对数
Math.pow(num,power)  返回 num 的 power 次幂
Math.sqrt(num)  返回 num 的平方根
Math.acos(x) 返回 x 的反余弦值
Math.asin(x) 返回 x 的反正弦值
Math.atan(x)  返回 x 的反正切值
Math.atan2(y,x)  返回 y/x 的反正切值
Math.cos(x)  返回 x 的余弦值
Math.sin(x)  返回 x 的正弦值
Math.tan(x)  返回 x 的正切值

 

JavaScript中Math对象的方法介绍的更多相关文章

  1. JavaScript中String对象的方法介绍

    1.字符方法 1.1 charAt() 方法,返回字符串中指定位置的字符. var question = "Do you like JavaScript?"; alert(ques ...

  2. JavaScript中判断对象类型方法大全1

    我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...

  3. JavaScript中判断对象类型方法大全2

    在JavaScript中,有5种基本数据类型和1种复杂数据类型,基本数据类型有:Undefined, Null, Boolean, Number和String:复杂数据类型是Object,Object ...

  4. JavaScript中给对象添加方法

    在JavaScript中,我们经常要给已定义的对象添加一些方法,如下:    function circle(w,h){      this.width=w;      this.height=h; ...

  5. JavaScript中textRange对象使用方法总结

    TextRange对象是动态HTML(DHTML)的高级特性,使用它可以实现很多和文本有关的任务,例如搜索和选择文本.文本范围让您可以选择性的将字符.单词和句子从文档中挑选出来.TextRange对象 ...

  6. javascript操作Math对象的方法总结

    //数学函数--abs 返回数字的绝对值 var a; /*a = Math.abs(-12); alert(a); //12 //数学函数--acos 返回数的反余弦数 a = Math.acos( ...

  7. javaScript中Math内置对象基本方法入门

    概念 Math 是javaScript的内置对象,包含了部分数学常数属性和数学函数方法. Math 不是一个函数对象,用户Number类型进行使用,不支持BigInt. Math 的所有属性与方法都是 ...

  8. javascript常用的Math对象的方法

    简介 Math对象是在程序编程中用于执行一些数学任务的.Math 对象并不像 Date 和 String 那样是对象的类,因此没有构造函数 Math(),像 Math.sin() 这样的函数只是函数, ...

  9. JavaScript中判断对象类型的种种方法

    我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...

随机推荐

  1. 为什么 NaN 不等于自身?

    NaN 即Not a Number , 不是一个数字, 那么NaN到底是什么呢? 话说在JavaScript中,有6大数据类型,分别包括string,number,boolean,undefined, ...

  2. .NET面试题系列[8] - 泛型

    “可变性是以一种类型安全的方式,将一个对象作为另一个对象来使用.“ - Jon Skeet .NET面试题系列目录 .NET面试题系列[1] - .NET框架基础知识(1) .NET面试题系列[2] ...

  3. Zabbix基本配置及监控主机

    监控主机一版需要在被监控的主机上安装Zabbix Agent 监控主机 安装zabbix-agent 首先需要在被监控的主机上安装agent,可以下载预编译好的RPM进行安装,下载地址:http:// ...

  4. node.js学习(二)--Node.js控制台(REPL)&&Node.js的基础和语法

    1.1.2 Node.js控制台(REPL) Node.js也有自己的虚拟的运行环境:REPL. 我们可以使用它来执行任何的Node.js或者javascript代码.还可以引入模块和使用文件系统. ...

  5. EF6 对多个数据库,多个DBContext的情况 进行迁移的方法。

    参见: http://stackoverflow.com/questions/21537558/multiple-db-contexts-in-the-same-db-and-application- ...

  6. Web安全相关(三):开放重定向(Open Redirection)

    简介 那些通过请求(如查询字符串和表单数据)指定重定向URL的Web程序可能会被篡改,而把用户重定向到外部的恶意URL.这种篡改就被称为开发重定向攻击.   场景分析 假设有一个正规网站http:// ...

  7. C#关于分页显示

    ---<PS:本人菜鸟,大手子还请高台贵手> 以下是我今天在做分页时所遇到的一个分页显示问题,使用拼写SQL的方式写的,同类型可参考哦~ ------------------------- ...

  8. iptables

    一.在服务器上打开 22.80.9011端口: iptables -A INPUT -p tcp --dport 9011 -j ACCEPT iptables -A OUTPUT -p tcp -- ...

  9. AFN解析器里的坑

    AFN框架是用来用来发送网络请求的,它的好处是可以自动给你解析JSON数据,还可以发送带参数的请求AFN框架还可以监测当前的网络状态,还支持HTTPS请求,分别对用的类为AFNetworkReacha ...

  10. CentOS7之按时间段截取指定的Tomcat日志到指定文件的方法

    CentOS7之按时间段截取指定的Tomcat日志到指定文件的方法 sed -n '/2016-11-02 15:00:/,/2016-11-02 15:05:/p' catalina.out > ...