JavaScript Math对象方法
发布日期:2021-05-07 07:12:34 浏览次数:17 分类:技术文章

本文共 2999 字,大约阅读时间需要 9 分钟。

文章目录

Math 对象

扩展

Math 对象上提供的计算要比直接在JavaScript实现的快的多,因为Math 对象上的计算使用了 JavaScript引擎中更高效的实现和处理器指令。但使用 Math 计算的问题是精度因浏览器、操作系统、指令集和硬件而异。

一、Math 对象属性

Math 对象有一些属性,主要用于保存数学中的一些特殊值。

属性 说明
Math.E 自然对数的基数 e 的值
Math.LN2 2 为底的自然对数
Math.LN10 10 为底的自然对数
Math.LOG2E 以 2 为底 e 的对数
Math.LOG10E 以 2 为底 e 的对数
Math.PI π的值
Math.SQRT1_2 1/2 的评分根
Math.SQRT2 2 的评分根

二、min()和max()方法

  • min():可以接收任意多个参数,返回所有数字中最小的
  • max():可以接收任意多个参数,返回所有数字中最大的
let max = Math.max(3,54,32,16);console.log(max);	//54let min = Math.min(3,54,32,16);console.log(min)	//3

解析

  1. 在3,54,32,16中,Math.max()返回的是54,Math.min()返回的是3.
  2. 这两个方法可以避免使用额外的循环和 if 语句来确定一组数值中的最大最小值
let values = [1,2,3,4,5,6,7,8,9];//直接使用数组调用Math.max()或Math.min()会出错,返回值为NaNlet max = Math.max(values);console.log(max);	//NaNlet min = Math.min(values);console.log(min);	//NaN//要使数组能用Math.max()和Math.min(),可以先使用“...”扩展操作符max = Math.max(...values);console.log(max);	//9min = Math.min(...values);console.log(min);	//1

解析

  1. 直接使用数组调用Math.max()或Math.min()会出错,返回值为NaN
  2. 要使数组能用Math.max()和Math.min(),可以先使用“…”扩展操作符

三、舍入方法

ceil()、floor()、round()、fround()

  • Math.ceil():向上取整
  • Math.floor():向下取整
  • Math.round():返回指定小数的四舍五入后最近的整数
  • Math.fround():返回数值最接近的单精度(32位)浮点值
console.log(4.4,Math.ceil(4.4));	//5console.log(-4.4,Math.ceil(-4.4));	//-4console.log(-4.5,Math.ceil(-4.5));	//-4console.log(4.4,Math.floor(4.4));	//4console.log(-4.4,Math.floor(-4.4));	//-5console.log(-4.5,Math.floor(-4.5));	//-5console.log(4.4,Math.round(4.4));	//4console.log(4.5,Math.round(4.5));	//5console.log(4.6,Math.round(4.6));	//5console.log(-4.4,Math.round(-4.4));	//-4console.log(-4.5,Math.round(-4.5));	//-4console.log(-4.6,Math.round(-4.6));	//-5console.log(4.4,Math.fround(4.4));	//4.400000095367432console.log(4.5,Math.fround(4.5));	//4.5console.log(4.6,Math.fround(4.6));	//4.599999904632568

四、random()方法

  • random():返回一个0-1范围内的随机数,其中包含 0 ,但是不包含 1 。

实例:从1-10范围内随机选择一个整数

//方法一let num1 = parseInt(Math.random()*10+1);	//[0-10)+1console.log(num1);//方法二let num2 = Math.floor(Math.random()*10+1); 	//[0-10)+1console.log(num2);//方法三(不推荐,取到1的概率极小)let num3 = Math.ceil(Math.random()*9+1);	//[0-9)+1console.log(num3);

实例:从2-10范围内随机选择一个整数

//方法一let num1 = parseInt(Math.random()*9+2);	//[2-11)console.log(num1);//方法二let num2 = Math.floor(Math.random()*9+2);	//[2-11)console.log(num2);

实例:创建一个随机数函数

function selectFrom(lowerValiue,upperValue){   	let choices = upperValue - lowerValiue + 1;	return Math.floor(Math.random()*choices + lowerValiue);}let num = selectFrom(2,10);console.log(num);	//2-10范围内的值,其中包括2和10。

五、其它方法

方法 说明
Math.abs(x) 返回 x 的绝对值
Math.exp(x) 返回Math.E的x次幂
Math.expml(x) 等于Math.exp(x) - 1
Math.log(x) 返回x的自然对数
Math.log1p(x) 等于1+Math.log(x)
Math.pow(x,power) 返回x的power幂
Math.pow(…nums) 返回nums中每个数平方和的平方根
Math.clz32(32) 返回32位整数x的前置0的数量
Math.sign(x) 返回x符号的1、0、-0、-1
Math.trunc(x) 返回x的整数部分,删除所有小数
Math.sprt(x) 返回x 的平方根
Math.cbrt(x) 返回x的立方根
Math.acos(x) 返回x的反余弦
Math.acosh(x) 返回x的反双曲余弦
Math.asin(x) 返回x的反正弦
Math.asinh(x) 返回x的反双曲正弦
Math.atan(x) 返回x的反正切
Math.atanh2(y,x) 返回y/x的反正切
Math.cos(x) 返回x的余弦
Math.sin(x) 返回x的正弦
Math.tan(x) 返回x的正切
上一篇:R语言练习题答案(3)
下一篇:R语言练习题答案(2)

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2025年03月22日 06时05分31秒