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. jQuery实践-网页版2048小游戏

    ▓▓▓▓▓▓ 大致介绍 看了一个实现网页版2048小游戏的视频,觉得能做出自己以前喜欢玩的小游戏很有意思便自己动手试了试,真正的验证了这句话-不要以为你以为的就是你以为的,看视频时觉得看懂了,会写了, ...

  2. ASP.NET Aries 入门开发教程5:自定义列表页工具栏区

    前言: 抓紧时间,继续写教程,因为发现用户期待的内容,都在业务处理那一块. 不得不继续勤劳了. 这节主要介绍工具栏区的玩法. 工具栏的默认介绍: 工具栏默认包括5个按钮,根据不同的权限决定显示: 添加 ...

  3. Android Ormlite 学习笔记2 -- 主外键关系

    以上一篇为例子,进行主外键的查询 定义Users.java 和 Role.java Users -- Role 关系为:1对1 即父表关系 Role -- Users 关系为:1对多 即子表关系 下面 ...

  4. c#多线程

    一.使用线程的理由 1.可以使用线程将代码同其他代码隔离,提高应用程序的可靠性. 2.可以使用线程来简化编码. 3.可以使用线程来实现并发执行. 二.基本知识 1.进程与线程:进程作为操作系统执行程序 ...

  5. C# 对象实例化 用json保存 泛型类 可以很方便的保存程序设置

    参考页面: http://www.yuanjiaocheng.net/webapi/test-webapi.html http://www.yuanjiaocheng.net/webapi/web-a ...

  6. EC笔记:第4部分:20、传递引用代替传值

    考虑以下场景: #include <iostream> #include <string> using namespace std; struct Person { strin ...

  7. nexus 社区版3.0.2部署、访问

    下载nexus社区办(oss): https://www.sonatype.com/download-oss-sonatype 目前最新版本  nexus-3.0.2-02-win64.zip nex ...

  8. windows 7(32/64位)GHO安装指南(序篇)~

    大家好,本人是高三刚毕业,即将踏入校园的程序猿~我写这篇文章呢,主要是想巩固一下之前对于电脑的基础知识理论,也希望能帮助没有电脑基础的同学能维护一下自己的电脑,要是能帮助女生修电脑那就是更好啦~~哈哈 ...

  9. #26 fibonacci seqs

    Difficulty: Easy Topic: Fibonacci seqs Write a function which returns the first X fibonacci numbers. ...

  10. 魅力 .NET:从 Mono、.NET Core 说起

    前段时间,被问了这样一个问题:.NET 应用程序是怎么运行的? 当时大概愣了好久,好像也没说出个所以然,得到的回复是:这是 .NET 程序员最基本的...呵呵! 微软开源,其实不只是对 .NET 本身 ...