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对象的方法介绍的更多相关文章
-
JavaScript中String对象的方法介绍
1.字符方法 1.1 charAt() 方法,返回字符串中指定位置的字符. var question = "Do you like JavaScript?"; alert(ques ...
-
JavaScript中判断对象类型方法大全1
我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...
-
JavaScript中判断对象类型方法大全2
在JavaScript中,有5种基本数据类型和1种复杂数据类型,基本数据类型有:Undefined, Null, Boolean, Number和String:复杂数据类型是Object,Object ...
-
JavaScript中给对象添加方法
在JavaScript中,我们经常要给已定义的对象添加一些方法,如下: function circle(w,h){ this.width=w; this.height=h; ...
-
JavaScript中textRange对象使用方法总结
TextRange对象是动态HTML(DHTML)的高级特性,使用它可以实现很多和文本有关的任务,例如搜索和选择文本.文本范围让您可以选择性的将字符.单词和句子从文档中挑选出来.TextRange对象 ...
-
javascript操作Math对象的方法总结
//数学函数--abs 返回数字的绝对值 var a; /*a = Math.abs(-12); alert(a); //12 //数学函数--acos 返回数的反余弦数 a = Math.acos( ...
-
javascript常用的Math对象的方法
简介 Math对象是在程序编程中用于执行一些数学任务的.Math 对象并不像 Date 和 String 那样是对象的类,因此没有构造函数 Math(),像 Math.sin() 这样的函数只是函数, ...
-
JavaScript中判断对象类型的种种方法
我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...
-
转 JavaScript中判断对象类型的种种方法
我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...
随机推荐
-
centos6.5下使用yum完美搭建LNMP环境(php5.6) 无脑安装
准备工作 配置防火墙,开启80端口.3306端口删除原有的 iptables , 添加合适的配置 rm -rf /etc/sysconfig/iptables vi /etc/sysconfig/ip ...
-
IntelliJ IDEA 部署Tomcat及创建一个web工程
一.部署Tomcat 二.新建一个web工程 1.新建一个Project 2.现在建立一个简单的web工程,所以只勾选下面选中的,此外,本版本(IntelliJ IDEA 14.1.5只支持3.1版本 ...
-
Xamarin 开发常见问题
原文:Xamarin 开发常见问题 Verify the project is selected to be deployed in the Solution Configuration Manage ...
-
诺心(LECAKE) | 氪加
诺心(LECAKE) | 氪加 诺心(LECAKE)
-
HDU 4293 Groups
模型挺好的dp题,其实这道题就是建一个模型然后就很容易想到递推过程了,我们可以把每个人的描述,存到数组a中,a[l][r]表示左边有l个,到第r个这个人所在一层停止...然后就可以写出转移状态方程了. ...
-
<;JAVA>;可变参数列表
这是java1.5版本的新特性,就是当你想定义一个方法,但是不知道以后要用的时候传几个参数进去,这时可以在方法的参数列表中这样写(参数类型... 数组名),然后在方法内部直接用操作数组的方式操作.比如 ...
-
NOIP 总结
NOIP 总结 实在不知道写什么标题 决定还是把我的noip总结贴上来,毕竟保存还是挺麻烦的. 扯淡 联赛考完有三个星期了,成绩也出了一个星期左右了. 终于还是决定动笔写一点联赛的总结. Day1 可 ...
-
Python就业指导
一年一度的金三银四招聘旺季又要到了,最近有很多同学希望我能给他们一些关于python的就业指导:之前出过一期关于java的就业指导,但是并不是很完善,所以希望这期关于python的就业指导能够很全面很 ...
-
读取 ini 配置文件
ini 配置文件格式:db_config.ini '''[section]option=value''' [DATABASE1] host=192.168.30.80 port= user=testa ...
-
(77)Wangdao.com第十五天_JavaScript 用于数据交换的文本格式 JSON 对象
JSON 对象 JSON (JavaScript Object Notation 的缩写) 也是一种数据,是 JavaScript 的原生对象,用来处理 JSON 格式数据.它有两个静态方法:JSON ...