Math
Math 是 JavaScript 的原生对象,提供各种数学功能。该对象不是构造函数,不能生成实例,所有的属性和方法都必须在 Math 对象上调用。
Math 对象的属性,提供以下一些数学常数。(了解)
Math.E:常数 e。
Math.PI:常数 Pi。
- Math.abs方法返回参数值的绝对值。
1 | Math.abs(1); // 1 |
Math.max 方法返回参数之中最大的那个值,Math.min 返回最小的那个值。如果参数为空, Math.min 返回 Infinity, Math.max 返回-Infinity。
Infinity 用于存放表示正无穷大的数值
1 | Math.max(2, -1, 5); // 5 |
- Math.floor方法小于参数值的最大整数(地板值)。
1 | Math.floor(3.2); // 3 |
- Math.round方法用于四舍五入。
1 | Math.round(0.1); // 0 |
- Math.pow方法返回以第一个参数为底数、第二个参数为幂的指数值。
1 | // 等同于 2 ** 2 |
- Math.sqrt方法返回参数值的平方根。如果参数是一个负值,则返回 NaN。
1 | Math.sqrt(4); // 2 |
勾股定理
a^2+b^2=c^2
三角函数
Math 对象还提供一系列三角函数方Math.sin()
:返回参数的正弦(参数为弧度值)Math.cos()
:返回参数的余弦(参数为弧度值)Math.tan()
:返回参数的正切(参数为弧度值)30*Math.PI/180
角度转为弧度
1 | Math.sin(0); // 0 |
- Math.random()返回 0 到 1 之间的一个伪随机数,可能等于 0,但是一定小于 1。
1 | Math.random(); // 0.7151307314634323 |
任意范围的随机整数生成函数如下。
1 | function getRandomInt(min, max) { |
Date
Date 对象是 JavaScript 原生的时间库。它以 1970 年 1 月 1 日 00:00:00 作为时间的零点,可以表示的时间范围是前后各 1 亿天(单位为毫秒)
日期对象创建
Date 可以当作构造函数使用。对它使用 new 命令,会返回一个 Date 对象的实例。如果不加参数,实例代表的就是当前时间。
1 | var today = new Date(); |
对 Date 实例求值,返回的是一个字符串,代表该实例对应的时间。
日期处理
oDate.getDate()
返回一个月中的某一天 (1 ~ 31)oDate.getDay()
返回一周中的某一天 (0 ~ 6)oDate.getMonth()
返回月份 (0 ~ 11)oDate.getFullYear()
以四位数字返回年份
作为构造函数时,Date 对象可以接受多种格式的参数,返回一个该参数对应的时间实例。
1 | // 参数为时间零点开始计算的毫秒数 |
参数也可以是一个字符串(最常用)
日期字符串应该符合 RFC 2822 和 ISO 8061 这两个标准,即 YYYY-MM-DDTHH:mm:ss.sssZ 格式
1 | new Date("2013-2-15"); |
上面多种日期字符串的写法,返回的都是同一个时间
日期处理oDate.getDate()
返回一个月中的某一天 (1 ~ 31)oDate.getDay()
返回一周中的某一天 (0 ~ 6)oDate.getMonth()
返回月份 (0 ~ 11)oDate.getFullYear()
以四位数字返回年份oDate.getHours()
返回当前小时(0-23)oDate.getMinutes()
返回当前分钟 (0 ~ 59)oDate.getSeconds()
返回当前秒(0 ~ 59)oDate.getMillisenconds()
返回当前毫秒(0 ~ 999)
注意,月份从 0 开始计算,但是,天数从 1 开始计算。另外,除了日期的默认值为 1,小时、分钟、秒钟和毫秒的默认值都是 0。
1 | new Date(2013, 15); |
oDate.getTime()
返回 1970 年 1 月 1 日至今的毫秒数oDate.setDate()
设置月中的某一天 (1 ~ 31)oDate.setMonth()
设置月份 (0 ~ 11)
例:
1 | oDate.setMonth(9); |
oDate.setFullYear()
设置年份(四位数)oDate.setHours()
设置小时(0-23)oDate.setMinutes()
设置分钟 (0 ~ 59)oDate.setSeconds()
设置秒(0 ~ 59)oDate.setMillisenconds()
设置毫秒(0 ~ 999)oDate.setTime()
设置 1970 年 1 月 1 日至今的毫秒数
这些参数如果超出了正常范围,会被自动折算。比如,如果月设为 15,就折算为下一年的 4 月
日期的运算
类型自动转换时,Date 实例如果转为数值,则等于对应的毫秒数;如果转为字符串,则等于对应的日期字符串。所以,两个日期实例对象进行减法运算时,返回的是它们间隔的毫秒数;进行加法运算时,返回的是两个字符串连接而成的新字符串。
1 | var d1 = new Date(2000, 2, 1); |
静态方法
Date.parse
方法用来解析日期字符串,返回该时间距离时间零点(1970 年 1 月 1 日 00:00:00)的毫秒数。
日期字符串应该符合 RFC 2822 和 ISO 8061 这两个标准,即 YYYY-MM-DDTHH:mm:ss.sssZ 格式,其中最后的 Z 表示时区。但是,其他格式也可以被解析,请看下面的例子。
1 | Date.parse("Aug 9, 1995"); |
定时器
setInterval(func,time)
有两个参数,第一个参数是一个函数,第二个参数是时间间隔,单位是毫秒
每间隔 time 毫秒,会执行一次函数
setInterval 的返回值是一个数字
1 | function box() { |
上面代码意思是,没间隔 1000 毫秒,box 函数执行一次。
取消定时器的执行
如果想要取消定时器的执行我们需要拿到 setInerval 定时器函数的返回值,调用 clearInterval,清除定时器clearInterval(timer)
,调用之后 box 函数就不会再执行了!
本文作者:人模人样的搬砖老段
本文链接:Math 和 Date
如有错误,请及时评论或者知乎私信或者 B 站私信哦~
最后更新于:2020/02/06