JavaScript数学对象

Math对象

Math是一个JavaScript内置对象,在window对象下的一个属性,

console.log(Math === window.Math) // true

而在数学中我们常用的计算以及参数都保存在Math对象中

# 圆周率π 
console.log(Math.PI) // 3.1415926...
# 自然常数e
console.log(Math.E)  // 2.7182882...
  • 算术平方根 Math.sqrt()
console.log(Math.sqrt(2) * Math.sqrt(2)) // 2.0000000000000004约等于2

JS中的计算只能取到合理近似值(误差很小),请理性看待,合理使用

.1+.2; // 0.30000000000000004
  • 指数 Math.pow()
console.log(Math.pow(2,3)) // 8 => 2 的 3 次方
  • 取整
Math.floor(3.14) // 3  向下取整
Math.ceil(3.14)	 // 4  向上取整
Math.round(3.14) // 3  四舍五入
Math.trunc(3.14) // 3  删除小数部分
  • 三角函数,反三角函数
    计算相对位置,角度,游戏中常用到的边界碰撞判断等。
    弧度制:弧度是一个角的张开程度,单位rad通常省略,有正负。
    规定平面内一条线段绕端点旋转一周回到初始位置所扫过的角度为Math.PI*2,对应360deg,逆时针为正,顺时针为负数。

正弦: Math.sin()
某一角度的计算值。此角度(0,Math.PI/2)形成直角三角形对边除以斜边的值

Math.sin(Math.PI/6) // 0.49999999999999994约等于0.5

余弦:Math.cos
某一角度的计算值。此角度(0,Math.PI/2)形成直角三角形邻边比斜边的值

Math.cos(Math.PI/3) // 0.49999999999999994约等于0.5

正切:Math.tan
某一角度的计算值。此角度(0,Math.PI/2)形成直角三角形对边比邻的边的值

Math.tan(Math.PI/4) // 0.9999999999999999约等于1

反三角 asin/acos/stan,根据正弦值余弦值正切值返回对应的弧度

  • 随机数 Math.random(), 返回大于0小于1的随机数
let num = Math.random()

封装 myRandon 随机生成大于n小于m的随机数

let myRndom = (n = 0, m = 1) => (Math.random()*(m-n)+n)
  • 绝对值 Math.abs()
Math.abs(-1) // 1
Math.abs(1)  // 1
  • 最大值(Math.max())与最小值(Math.min())
let arr = [1,2,4,5,3]
Math.max(...arr) // 5
Math.min(...arr) // 1
  • parseInt和parseFloat
    解析传入的字符串,返回一个符合要求的10进制数,解析不出来返回NaN
// paseInt 返回整数
//传入两个参数:
	//第一个是需要解析的字符串,必填
	//第二个是进制基数2-36(0-9,a-z),当前传入的字符串的进制是多少,不填默认是10
parseInt("1123.asdasd"); // 1123
parseInt("a123");        // NaN
parseInt("Infinity");    // NaN
parseInt("123",16);      // 以16进制识别123,值为1*16*16+2*16^1+3
parseInt("zzz",36);      // 以36进制识别zzz,值为35*36*16+35*36+35
parseInt(123,2);         // 123转字符串"123",2进制识别1 转2进制 1*Math.pow(2,0)
//paseFloat返回带小数点的浮点类型
//返回整数或者小数,支持科学记数法,解析不出来返回NaN
parseFloat("123.231");              // 123.231
parseFloat({toString(){return 1}}); // 1 底层是对传入的参数使用toString方法,或者valueOf方法
parseFloat([1,23,5])				// 1 
parseFloat("asd");					// NaN
parseFloat("2e-3");					// 0.003
parseFloat("2.32E3");				// 2320
parseFloat("0x13");					// 0
  • 保留小数点 num.toFixed(n) n 为要保留的小数位数
let num = 3.1415926
num.toFixed(2) // 3.14
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值