奇淫巧技 - Math 对象

1,730 阅读2分钟
原文链接: mulgore.github.io

什么是Math对象

Math 是一个内置对象, 为数学常量和数学函数提供了属性和方法,而不是一个函数对象。

Math对象与其它全局对象不同的是,它不是一个构造器。Math对象的所有属性和方法都是静态的。你用到的常数pi可以用Math.PI表示,用 x 作参数Math.sin(x)调用sin函数。JavaScript中的常数, 是以全精度的实数定义的。

奇淫巧技

Math.abs(-100
-5 % 2 === 1 
Math.abs(-5 % 2) === 1

abs方法可以返回一个绝对值,相比之下当字符串转Number是比parseInt方法要安全的很多,当然你也可以使用Number的方式来处理,如果有一项为非数字的字符串,返回NaN,最重要的是它可以将负数解为正数。

在对2取余时-5明显是应该等于1的,在这里往往会造成bug,于是abs就派上用场了。

var num = [12,2,3,4,5]
Math.max.apply(null,num)
num.sort(function(x,y){return x < y;})
num[0]

max方法可以返回0个到多个数值中的最大值,如果有一个数组且需要查找最大数,使用apply方法即可以筛选出来。

var num = [12,3,4,5,6]
Math.min.apply(null,num

min方法可以返回0个到多个数值中最小值,使用方式与max相同调用apply方法将数组当参数传入。

Math.random() * (10-2)+

random方法可以返回0-1之间的随机浮点数,使用它可以返回一个介于2和10之间的随机数。

console.log(Math.random().toString(16).substring(2))
console.log(Math.random().toString(36).substring(2))

random还可以用来生成随机码,巧用了toString方法。

Math.floor(Math.random()*(10-2)+2

floor(x)方法返回小于或等于数 “x” 的最大整数,使用它我们可以轻易的求去一个介于2和10之间的随机整数。

ceil方法返回一个大于或等于数 “x” 的最小整数。

var numbers = [20,12,3,4,23,1]
numbers = numbers.sort(function(){ return Math.random() - 0.5})

numbers可以得到一个[3, 12, 20, 23, 4, 1]的乱序。

关注我们

扫二维码 或搜索 fed-talk ,关注我们的微信公众号。