JavaScript中Math的用法

《一》

Math 对象用于执行数学任务。

Math 对象并不像 Date 和 String 那样是对象的类,因此没有构造函数 Math()。

JavaScript中Math的用法

使用 Math 的属性和方法的语法:

var pi_value=Math.PI;
var sqrt_value=Math.sqrt(15);

注释:Math 对象并不像 Date 和 String 那样是对象的类,因此没有构造函数 Math(),像 Math.sin() 这样的函数只是函数,不是某个对象的方法。您无需创建它,通过把 Math 作为对象使用就可以调用其所有属性和方法。

<2>

Math.abs 函数 (JavaScript)

 

返回一个数字的绝对值(即该值不考虑数字是为正还是为负)。 例如,-5 的绝对值和 5 的绝对值相同。

语法

Math.abs(number)

参数

必需的 number 参数是绝对值所需的数值表达式。

返回值

number 参数的绝对值。

示例

下面的示例说明了 abs 函数的用法。

JavaScript

var s;
var v1 = Math.abs(6);
var v2 = Math.abs(-6);
if (v1 == v2) {
    document.write("Absolute values are the same.");
}
else {
document.write("Absolute values are different.");
}

// Output: Absolute values are the same.

<3>Math.ceil()和Math.floor()

JS中的Math.ceil函数的用法Math.ceil(x) --返回大于等于数字参数的最小整数(取整函数),对数字进行上舍入

Math.floor(x)--返回小于等于数字参数的最大整数,对数字进行下舍入

例如:document.write(Math.ceil(5.99));//6

document.write(Math.ceil(-5.99));//-5

document.write(Math.ceil(1.01));//2

document.write(Math.ceil(-1.01));//-1 

 

<4>Math.random()

Math.random()方法返回大于等于 0 小于 1 的一个随机数。对于某些站点来说,这个方法非常实用,因为可以利用它来随机显示一些名人名言和新闻事件。

1. 在连续整数中取得一个随机数

值 = Math.floor(Math.random() * 可能值的总数 + 第一个可能的值)
例:产生1-10的随机数

代码如下:

var rand1 = Math.floor(Math.random() * 10 + 1);

编写产生startNumber至endNumber随机数的函数

代码如下:

function selectFrom(startNumber, endNumber) {
    var choice = endNumber - startNumber + 1;
    return Math.floor(Math.random() * choice + startNumber)
}
var rand2 = selectFrom(2,8);//产生2至8的随机数

2. 在不相邻整数中取得一个随机数

2.1 在不相邻的两个整数中取得一个随机数

例:随机产生2或4中的一个数

代码如下:

var rand3 = Math.random() < 0.5 ? 2 : 4;

2.2 在不相邻的多个整数中产生一个随机数

结合函数参数数组,可编写在不相邻的多个整数中产生一个随机值的函数

代码如下:

function selectFromMess() {
    return arguments[Math.floor(Math.random() * arguments.length)]
}
//随机产生1、6、8中的一个数
var rand4 = selectFromMess(1, 6, 8);
//也可随机产生文本
var randomTxt1 = selectFromMess("安慰奖", "二等奖", "一等奖");

每次要输入这么多参数比较麻烦,可以改写一下函数

代码如下:
function selectFromMessArray(arr) {
    return arr[Math.floor(Math.random() * arr.length)]
}
var arrayTxt=["一","二","三","四","五"];
var randTxt2 = selectFromMessArray(arrayTxt);

或者不改变原有方法,可以利用apply()这个方法传递数组参数

代码如下:
var randTxt3 = selectFromMess.apply(null,arrayTxt);