作者:qinqin20082602898705 | 来源:互联网 | 2023-09-12 15:22
title:前端开发系列009-基础篇之JavaScript内置Mathtags:-javaScript系列categories:[]date:2017-05-0822:23:23
title: '前端开发系列009-基础篇之Javascript内置Math'
tags:
- Javascript系列
categories: []
date: 2017-05-08 22:23:23
本文介绍Javascript中的内置对象Math,以及Math的常用方法。
一、Math简单介绍
ECMAScript为我们提供了一个专门处理数学计算的内置对象——Math对象。Math对象提供了很多数学专业计算中可能会用到的特殊值(譬如 π
)常量,以及封装好的工具函数(譬如 求N个数最大值、最小值、随机数、绝对值、平方根以及正玄和反余值等
)。
这里先通过console.dir()
方法打印Math对象的所有成员,我们可以通过下面列出的打印信息对Math对象有一个简单的了解。
console.dir(Math);
Math
E: 2.718281828459045 //自然对数的底数,常量e的值
LN2: 0.6931471805599453 //2的自然对数
LN10: 2.302585092994046 //10的自然对数
LOG2E: 1.4426950408889634 //以2为底e的对数
LOG10E: 0.4342944819032518 //以10为底e的对数
PI: 3.141592653589793 //π的值
SQRT1_2: 0.7071067811865476 //1/2的平方根(2的平方根的倒数)
SQRT2: 1.4142135623730951 //2的平方根
abs: ƒ abs() //求参数的绝对值
acos: ƒ acos() //返回参数的反余弦值
acosh: ƒ acosh()
asin: ƒ asin() //返回参数的反正玄值
asinh: ƒ asinh()
atan: ƒ atan() //返回参数的反正切值
atan2: ƒ atan2() //Math.atan2(y,x) 返回y/x的反正切值
atanh: ƒ atanh()
cbrt: ƒ cbrt()
ceil: ƒ ceil() //执行向上舍入(将数值向上舍入为最接近的整数)
clz32: ƒ clz32()
cos: ƒ cos() //返回参数余弦值
cosh: ƒ cosh()
exp: ƒ exp() //返回Math.E的参数次幂
expm1: ƒ expm1()
floor: ƒ floor() //执行向下舍入(将数值向下舍入为最接近的整数)
fround: ƒ fround()
hypot: ƒ hypot()
imul: ƒ imul()
log: ƒ log() //返回参数的自然对数
log1p: ƒ log1p()
log2: ƒ log2()
log10: ƒ log10()
max: ƒ max() //返回参数列表中的最大值
min: ƒ min() //返回参数列表中的最小值
pow: ƒ pow() //Math.pow(n,p) 返回n的p次幂
random: ƒ random() //返回0~1之间的随机数
round: ƒ round() //执行标准的舍入(数学意义的舍入规则)
sign: ƒ sign()
sin: ƒ sin() //返回参数的正弦值
sinh: ƒ sinh()
sqrt: ƒ sqrt() //返回参数的平方根
tan: ƒ tan() //返回参数的正切值
tanh: ƒ tanh()
trunc: ƒ trunc()
Symbol(Symbol.toStringTag): "Math"
__proto__: Object
二、Math常用方法
Math.abs()
方法返回参数值的绝对值。
console.log(Math.abs(16)); //16
console.log(Math.abs(-6)); //6
Math.max()
方法返回参数之中最大的那个值,Math.min()
返回参数列表中最小的那个值。如果参数为空, Math.min返回Infinity, Math.max返回-Infinity。
/*01-求参数列表的最大值和最小值*/
console.log(Math.max(2, -1, 5, 18)); // 18
console.log(Math.min(2, -1, 5, 21)); // -1
/*02-测试参数列表为空的情况*/
console.log(Math.min()); // Infinity
console.log(Math.max()); // -Infinity
Math.pow(x,y)
方法返回以第一个参数为底数、第二个参数为幂的指数值,即求x的y次幂。
console.log(Math.pow(2,3)); //8 2的3次幂
console.log(Math.pow(2,-1)); //0.5 2的-1次幂
/*计算 圆的面积 = πr的平方*/
var radius = 20;
var area = Math.PI * Math.pow(radius, 2);
Math.round
方法用于执行四舍五入操作。
Math.ceil()
方法用于返回大于参数值的最小整数(天花板值)。
Math.floor()
方法用于返回大于参数值的最大整数(地板值)。
/*01-Math.round() 执行正常的四舍五入操作*/
console.log(Math.round(0.1)); // 0
console.log(Math.round(0.5)); // 1
console.log(Math.round(0.6)); // 1
/*负值的处理*/
console.log(Math.round(-1.1)); // -1
console.log(Math.round(-1.5)); // -1 注意特殊情况
console.log(Math.round(-1.7)); // -2
/*02-Math.ceil() 大于参数值的最小整数*/
console.log(Math.ceil(3.1)); // 4
console.log(Math.ceil(3.5)); // 4
console.log(Math.ceil(3.9)); // 4
console.log(Math.ceil(-3.1)); //-3
console.log(Math.ceil(-3.5)); //-3
console.log(Math.ceil(-3.9)); //-3
/*03-Math.floor() 小于参数值的最大整数*/
console.log(Math.floor(3.1)); // 3
console.log(Math.floor(3.5)); // 3
console.log(Math.floor(3.9)); // 3
console.log(Math.floor(-3.1)); //-4
console.log(Math.floor(-3.5)); //-4
console.log(Math.floor(-3.9)); //-4
Math.sqrt()
方法返回参数值的平方根,如果参数是一个负值,则返回NaN。
console.log(Math.sqrt(4)); //2
console.log(Math.sqrt(-4)); //NaN
console.log(Math.sqrt(9)); //3
Math.random()
方法返回0到1之间的一个伪随机数,取值区间为[ 0 , 1 )
。
console.log(Math.random()); //0.6260459147033315
console.log(Math.random()); //0.5273094529873636
/*封装两个生成随机数的方法*/
function getRandom(min, max) {
return Math.random() * (max - min) + min;
}
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
getRandom(1, 8) // 6.919178146646834
getRandomInt(1, 8) // 5
/*如果需要对结果取整,那么使用Math.floor或者是parseInt函数处理*/
Math对象除了上述工具函数外,还提供一系列的三角函数方法。
//Math.sin():返回参数的正弦 (参数为弧度值)
//Math.cos():返回参数的余弦 (参数为弧度值)
//Math.tan():返回参数的正切 (参数为弧度值)
//Math.asin():返回参数的反正弦 (返回值为弧度值)
//Math.acos():返回参数的反余弦 (返回值为弧度值)
//Math.atan():返回参数的反正切 (返回值为弧度值)
console.log(Math.sin(0)); // 0
console.log(Math.cos(0)); // 1
console.log(Math.tan(0)); // 0
console.log(Math.sin(Math.PI / 2)); // 1