
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
解析:
- 在3,54,32,16中,Math.max()返回的是54,Math.min()返回的是3.
- 这两个方法可以避免使用额外的循环和 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
解析:
- 直接使用数组调用Math.max()或Math.min()会出错,返回值为NaN
- 要使数组能用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的正切 |
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2025年03月22日 06时05分31秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Idiot 的间谍网络
2019-03-04
MySql索引及使用、实现的数据结构
2019-03-04
初探SSRF漏洞
2019-03-04
pythonBug入门——从零开始学python
2019-03-04
js-禁止右键菜单代码、禁止复制粘贴代码
2019-03-04
SpringBoot中使用Mybatis访问MySQL数据库(使用xml方式)
2019-03-04
$set的使用(视图不能实时更新)
2019-03-04
【SSL】1072砝码称重
2019-03-04
js数据结构--队列--常见操作
2019-03-04
多项式插值法的Python程序
2019-03-04
vue.js常用指令及用法
2019-03-04
vuex的核心概念和运行机制
2019-03-04
SSLOJ1692 USACO 3.2 Magic Squares 魔板&P2730
2019-03-04
暴打算法:王者级数据结构与LeetCode笔记,一路绿灯杀进字节Java岗
2019-03-04
限时开源!公布半小时下载量达10W:阿里大牛出品「MyCat笔记」
2019-03-04
阿里Java全线成长宝典,从P5到P8一应俱全
2019-03-04
计算机系统原理——cachelab 实验1(第一周)
2019-03-04
JAVA初窥-DAY07
2019-03-04
数组--Go语言学习笔记
2019-03-04
Redis (三)——Linux 上安装 Redis
2019-03-04