1、Math对象
JavaScript 有一个内建的 Math 对象,它包含了一个小型的数学函数和常量库, 它为数学常量和数学函数提供了属性和方法,而不是一个函数对象。
属性
-
Math.PI
= > 圆周率,一个圆的周长和直径之比,悦等于3.14159. -
Math.E
= > 欧拉常数,自然对数的底数,约等于2.718.
舍入
舍入(rounding)是使用数字时最常用的操作之一。
这里有几个对数字进行舍入的内建函数:
1、Math.floor
()
向下舍入:3.
变成 3
,-1.1
变成 -2
。
2、Math.ceil
()
向上舍入:3.1
变成 4
,-1.1
变成 -1
。
3、Math.round
()
向最近的整数舍入:3.1
变成 3
,3.6
变成 4
,-1.1
变成 -1
。
函数返回四舍五入到最接近整数的数字的值。
如果参数的小数部分大于0.5,则将参数舍入为具有下一个较高的绝对值的整数。如果小于0.5,则将参数舍入为具有较低绝对值的整数。如果小数部分正好是0.5,则参数将沿+∞方向舍入到下一个数。
例如:
<script> console.log(Math.round(-5.5)); // 输出-5 console.log(Math.round(5.5)); // 输出6 </script>
4、Math.trunc
(IE 浏览器不支持这个方法)
移除小数点后的所有内容而没有舍入:3.1
变成 3
,-1.1
变成 -1
。
1、Math.random()
返回一个从 0 到 1 的随机数(不包括 1)
实例:
alert( Math.random() ); // 0.1234567894322 alert( Math.random() ); // 0.5435252343232 alert( Math.random() ); // ... (任何随机数)
如果需要一个n-m之间的数。
计算公式:
Math.round(Math.random()*(m-n)+n)
实例:
// 获取1个5-10的数 document.write(Math.round(Math.random() * 5 + 5))
2、Math.max(a, b, c...)
/ Math.min(a, b, c...)
从任意数量的参数中返回最大/最小值。
实例:
alert( Math.max(3, 5, -10, 0, 1) ); // 5 alert( Math.min(1, 2) ); // 1
3、Math.pow(n, power)
返回 n
的给定(power)次幂
实例:
alert( Math.pow(2, 10) ); // 2 的 10 次幂 = 1024
4、Math.sqrt()
函数返回数字的平方根
alert(Math.sqrt(9));//3
给定数字的平方根。如果数字为负,NaN
则返回。
5、Math.abs()
函数返回数字的绝对值
alert(Math.abs(-1));//1
使用Math封装函数得到一个16进制随机颜色编码:
<script> var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, "a", "b", "c", "d", "e", "f"]; var str = "#"; function color(n, m) { for (var i = 0; i < 6; i++) { str += (arr[Math.round(Math.random() * (m - n) + n)]); } return str; } document.write(color(0, arr.length - 1)); alert(str); </script>
2、Date对象
1.创建日期对象。
创建一个新的 Date
对象,只需要调用 new Date()
例如: var now = new Date(); alert( now ); // 显示当前的日期/时间!
创建日期对象是,可以指定日期。
指定日期的几种方式:
-
new Date("2021/1/7")
-
new Date("2021-1-7 12:30:20")
-
new Date(1576800000000);
-
new Date(2021, 00, 7, 15, 33, 20);
<script> var d1 = new Date("2021/1/7") var d2 = new Date("2021-1-7 12:30:20"); // 距离1970年1月1号00点的毫秒设置日期 var d3 = new Date(1576800000000); // 国外日期从0月开始,等于正常的一月 var d4 = new Date(2021, 00, 7, 15, 33, 20); document.write(d1 + "<br>" + d2 + "<br>" + d3 + "<br>" + d4) </script>
指定日期时。只有前两个参数是必须的。
-
year
必须是四位数:2013
是合法的,98
是不合法的。 -
month
计数从0
(一月)开始,到11
(十二月)结束。 -
date
是当月的具体某一天,如果缺失,则为默认值1
。 -
如果
hours/minutes/seconds/ms
缺失,则均为默认值0
。 -
例如
new Date(2011, 0, 1, 0, 0, 0, 0); // 1 Jan 2011, 00:00:00 new Date(2011, 0, 1); // 同样,时分秒等均为默认值 0
2.Date对象方法
从 Date
对象中访问年、月等信息有多种方式:
getFullYear()
获取年份(4 位数)
不是 getYear()
,而是 getFullYear()
很多 JavaScript 引擎都实现了一个非标准化的方法 getYear()
。不推荐使用这个方法。它有时候可能会返回 2 位的年份信息。永远都不要使用它。要获取年份就使用 getFullYear()
。
getMonth()
获取月份,从 0 到 11。
getDate()
获取当月的具体日期,这个方法名称可能看起来有些令人疑惑。
获取相应的时间组件。
getHours()
获取小时
getMinutes()
获取分钟数
getSeconds()
获取秒数
getDay()
获取一周中的第几天,从 0
(星期日)到 6
(星期六)。第一天始终是星期日,在某些国家可能不是这样的习惯,但是这不能被改变。
getTime()
返回日期的时间戳 —— 从 1970-1-1 00:00:00 UTC+0 开始到现在所经过的毫秒数。
getTimezoneOffset()
返回 UTC 与本地时区之间的时差,以分钟为单位
Date.parse(日期对象);
将日期对象转为毫秒数。
设置日期:
setDate() 设置日期的天数。
setMonth() 设置月份
setFullYear() 设置日期的年份
setHours() 设置小时数
setMinutes() 设置分钟数
setSeconds() 设置秒数
setMilliseconds() 设置毫秒数
new Date(year, month, date, hours, minutes, seconds, ms)
使用当前时区中的给定组件创建日期。只有前两个参数是必须的。
year
必须是四位数:2013
是合法的,98
是不合法的。month
计数从0
(一月)开始,到11
(十二月)结束。date
是当月的具体某一天,如果缺失,则为默认值1
。- 如果
hours/minutes/seconds/ms
缺失,则均为默认值0
。
例如:
new Date(2011, 0, 1, 0, 0, 0, 0); // 1 Jan 2011, 00:00:00
new Date(2011, 0, 1); // 同样,时分秒等均为默认值 0