这是《JavaScript标准库系列》的第二篇文章,主要讨论一下Math对象和Date对象,Math对象在平时处理一些数学操做时能起到事半功倍的做用,目前小羊接触到的Math对象的使用场景是动画制做;
Date对象做为关于时间的接口,可以将其应用于制做和时间相关的应用,下文给出一个日历小插件做为该对象的实际应用;javascript
Math对象提供了数学当中常见的属性和方法,注意的是Math对象并非构造函数;
Math对象的方法的其中一个应用是在制做复杂的动画特效时能派上大用场,所以对动画制做感兴趣的童鞋要掌握好;css
Math对象的属性定义常见的数学常量:html
最值方法java
Math.min && Math.max:根据参数返回最值;数组
可利用该方法去获取数组的最值;dom
舍入方法函数
Math.floor:向下取整;
Math.ceil:向上取整;工具
Math.round:四舍五入取整;动画
随机数方法spa
Math.random:返回0~1(不包含1)的随机数;
能够经过如下方法获取任意范围的随机数:
//获取0~9的数值 Math.floor(Math.random()*10) //获取1~10的数值 Math.floor(Math.random()*10+1) //获取任意范围的数值 function randomNum(min,max){ if(min-max>0){ var mid = min; min = max; max = mid; } var range = max - min + 1 return Math.floor(Math.random()*range+min); };
//html <div id="colors" >Hello World </div> //js var $colors = $('#colors') setInterval(function(){ var pipeRed = randomNum(0,255), pipeGreen = randomNum(0,255), pipeBlue = randomNum(0,255); color = "rgb("+pipeRed+","+pipeGreen+","+pipeBlue+")"; $colors.css({ "background":color, }) console.log(color) },1000)
基本数学函数方法
三角函数方法
【注】:
Date对象使用自UTC1970年1月1日零时开始的通过的毫秒数来保存时间,时间范围为该时期先后1亿天;
Date对象自身的方法
Date对象做为方法使用,带不带参数都返回当前的时间的字符串
注意:new Date()
返回的是对象,虽然两者看上去很像;
Date对象的静态方法
Date.now():返回当前距离1970年1月1日 00:00:00 UTC的毫秒数;
Date.UTC():返回设置的参数距离1970年1月1日 00:00:00 UTC的毫秒数,参数格式为:
year, month[, date[, hrs[, min[, sec[, ms]]]]]
[注]12个月份分别有0~11表示,上面的11表明12月;
Date.parse():解析日期字符串,返回当前距离1970年1月1日 00:00:00 UTC的毫秒数;
[注]可传递的日期字符串不只限于上述,可是通常采用上面3种日期字符串表示方法;
Date.parse()和Date.UTC()做用相似;
Date做为构造函数
Date做为构造函数时,能够生成一个时间对象的实例, 不传参数将返回当前的时间对象实例,传递的参数能够是多个表明日期的数值,也能够是日期字符串,还能够是表明时间的毫秒数;
使用表明日期的数值设置时间时要注意各个参数的取值范围:
year: 4位年份; month: 0-11,这个要注意; date:1-31; hour:0-23; minute:0-59; second:0-59 ms:0-999
Date对象的实例方法
阮一峰的《JavaScript标准参考教程》总结了3大类方法,小羊根据其教程筛选了比较经常使用to类方法,详见阮一峰的教程;
to类方法
toString:返回当前时区的时期字符串;
toUTCString:返回当前0时区的时期字符串;
toDateString:返回日期字符串;
toTimeString:返回时间字符串;
toLocalTimeString:返回当地表现形式的时间字符串
get类方法
getFullYear:获取实例的四位年份;
getMonth:获取月份(0表1月,11表12月);
getDate:获取第几天;
getDay:获取星期(0为星期日,6为星期六);
getHours:返回小时;
getMinutes:返回分钟;
getSeconds:返回秒;
getMilliseconds:返回毫秒;
getTime():返回距离1970年1月1日00:00:00的毫秒数,至关于valueOf();
set类方法
setFullYear:设置实例的四位年份;
setMonth:设置月份;
setDate:设置日子;
setHours:设置小时;
setMinutes:设置分钟;
setSeconds:设置秒;
setMilliseconds:设置毫秒;
setTime:设置毫秒时间戳;
日期插件件详见小羊的文章[《[简洁的jQuery日历小插件]》](http://www.jianshu.com/p/048d...;
通读本文以后,咱们能够基本清楚理解:
Math对象提供数学当中经常使用的属性和方法;
Math对象的属性包括PI、E、LN二、LN十、LOG2E、LOG10E
;
MAth对象的方法包括最值方法、舍入方法、随机数方法、基本数学函数方法和三角函数方法;
Date对象的使用可分为Date对象做为工具方法和Date对象的实例方法;
Date对象做为工具方法部分,Date()
直接返回当前时间的字符串,注意和new Date()
的区别;Date.now()
返回当前距离起始日期的毫秒数;Date.parse()
能够解析日期为毫秒数;
Date对象可做为构造函数建立一个日期实例,可传递多种形式的日期参数;但要注意不一样时间参数的取值范围的不一样;
Date对象的实例方法可大体分为3大类,to类、get类和set类;其中除了getDay()这一方法在set类中没有对应方法外,其余get类都有对应set类方法;
《JavaScript高级程序设计(第3版)》