什么是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 ,关注我们的微信公众号。